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文件就可以了,只要对方有环境就可以运行。

  • 相关阅读:
    友盟上报 IOS
    UTF8编码
    Hill加密算法
    Base64编码
    Logistic Regression 算法向量化实现及心得
    152. Maximum Product Subarray(中等, 神奇的 swap)
    216. Combination Sum III(medium, backtrack, 本类问题做的最快的一次)
    77. Combinations(medium, backtrack, 重要, 弄了1小时)
    47. Permutations II(medium, backtrack, 重要, 条件较难思考)
    3.5 find() 判断是否存在某元素
  • 原文地址:https://www.cnblogs.com/lyfstorm/p/11000232.html
Copyright © 2011-2022 走看看