zoukankan      html  css  js  c++  java
  • Python各种扩展名(py, pyc, pyw, pyo, pyd)区别

    扩展名

    在写Python程序时我们常见的扩展名是py, pyc,其实还有其他几种扩展名。下面是几种扩展名的用法。

    py

    py就是最基本的源码扩展名

    pyw

    pyw是另一种源码扩展名,跟py唯一的区别是在windows下双击pyw扩展名的源码会调用pythonw.exe执行源码,这种执行方式不会有命令行窗口。主要用于GUI程序发布时不需要看到控制台信息的情况。

    pyc

    在执行python代码时经常会看到同目录下自动生成同名的pyc文件。这是python源码编译后的字节码,一般会在代码执行时自动生成你代码中引用的py文件的pyc文件。这个文件可以直接执行,用文本编辑器打开也看不到源码。

    pyo

    pyo是跟pyc类似的优化编码后的文件。

    pyd

    pyd并非从python程序生成,而是其他语言写成的可以被python调用的扩展,例如C++写的动态连接库共python调用

    程序发布的选择

    以windows平台为例

    打包为正常可执行程序

    如果要公开发布程序,最常见的方式就是打包成exe程序了。打包的好处是使用者不需要考虑Python的运行环境,且也容易被接受。但不好的是一般打包出来的程序都比较大,而且由于是依靠模块打包,有可能出现兼容性等问题。

    常用的打包模块是pyinstaller。常用的打包命令是:

    pyinstaller -F example.py

    -F参数可将代码打包成单个exe程序。

    另外如果是GUI程序不需要控制台窗口的还可以加上-w参数:

    pyinstaller -w -F example.py

    发布编译后的pyc/pyo

    如果使用者有python环境,又不想让他们看到源码,就可以选择发布pyc/pyo文件。

    直接执行的py文件不会自动生成pyc,需要手动编译一下。单文件编译:

    import py_compile
    py_compile.compile(r'c:	est.py')

    文件夹编译:

    import compileall
    compileall.compile_dir(dirpath)

    编译成pyo:

    python -O -m py_compile file.py

    如果是GUI程序不需要控制台窗口,可以新建一个pyw文件用于调用主pyc程序。pyw中只需要导入pyc程序即可。

    发布源码py

    发布源码一般是开源项目使用的,没什么需要说明的。直接发py文件就可以了,只要对方有环境就可以运行。

  • 相关阅读:
    Spring MVC+Spring +Hibernate配置事务,但是事务不起作用
    Spring MVC 上传文件
    早安日语1
    Spring MVC学习初篇
    Eclipse中查看JDK源码设置
    Eclipse常见设置及快捷键使用总结(更新中)
    Java中boolean型变量的默认值问题
    [转载]浅析Java中的final关键字
    Eclipse中Outline里各种图标的含义
    [转载]深入理解JAVA的接口和抽象类
  • 原文地址:https://www.cnblogs.com/lyfstorm/p/11000232.html
Copyright © 2011-2022 走看看