扩展名

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

py

py就是最基本的源码扩展名。windows下直接双击运行会调用python.exe执行。

pyw

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

pyc

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

pyo

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

pyd

pyd并非从python程序生成,而是其他语言写成的可以被python调用的扩展。

程序发布的选择

由于笔者基本只在windows平台下考虑发布问题,其他平台均使用源码,故此处讨论基本围绕windows平台。

打包为正常exe程序

如果要公开发布程序,最常见的方式就是打包成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:\test.py')1

2

文件夹编译:

import compileall

compileall.compile_dir(dirpath)1

2

编译成pyo:

python -O -m py_compile file.py

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

发布源码py

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

参考资料:

python程序的扩展名是perl程序的扩展名是_Python 程序扩展名(py, pyc, pyw, pyo, pyd)及发布程序时的选择...相关推荐

  1. Python 程序扩展名(py, pyc, pyw, pyo, pyd) 及发布程序时的选择

    参考文章:Python 程序扩展名(py, pyc, pyw, pyo, pyd)及发布程序时的选择

  2. Python 程序扩展名(py, pyc, pyw, pyo, pyd)及发布程序时的选择

    扩展名 在写Python程序时我们常见的扩展名是py, pyc,其实还有其他几种扩展名.下面是几种扩展名的用法. py py就是最基本的源码扩展名.windows下直接双击运行会调用python.ex ...

  3. Python 常见文件格式 .py .pyc .pyw .pyo .pyd 之间的主要区别

    Python 常见文件格式 .py .pyc .pyw .pyo .pyd 之间的主要区别 Python 是一种面向对象.解释型计算机程序设计语言.Python 语法简洁.清晰,具有丰富和强大的类库. ...

  4. Python各种扩展名(py, pyc, pyw, pyo, pyd)区别

    扩展名 在写Python程序时我们常见的扩展名是py, pyc,其实还有其他几种扩展名.下面是几种扩展名的用法. py py就是最基本的源码扩展名 pyw pyw是另一种源码扩展名,跟py唯一的区别是 ...

  5. Python 各种扩展名(py, pyc, pyw, pyo, pyd)区别

    扩展名 在写Python程序时我们常见的扩展名是py, pyc,其实还有其他几种扩展名.下面是几种扩展名的用法. py py就是最基本的源码扩展名 pyw pyw是另一种源码扩展名,跟py唯一的区别是 ...

  6. Python文件格式 .py .pyc .pyw .pyo .pyd的主要区别

    Python是一种面向对象.解释型计算机程序设计语言.Python 语法简洁.清晰,具有丰富和强大的类库. Python源代码遵循 GPL (GNU General Public License) 协 ...

  7. python 文件 .py .pyc .pyw .pyo .pyd

    DLL文件即动态链接库文件,是一种可执行文件,它允许程序共享执行特殊任务所必需的代码和其他资源.打不开,不过可以使用反汇编;PYD是一种PYTHON动态模块.实质上还是dll文件,只是改了后缀为PYD ...

  8. 【python】Python 常见文件格式 .py .pyc .pyw .pyo .pyd简介

    文章目录 概览 .py 文件 .pyw 文件 .pyo 文件 .pyd 文件 .pyd文件上手方法 概览 Python([ˈpaɪən])是一种面向对象.解释型计算机程序设计语言.Python语法简洁 ...

  9. Python 常见文件格式 .py .pyc .pyw .pyo .pyd

    转载于此 Python([ˈpaɪθən])是一种面向对象.解释型计算机程序设计语言.Python 语法简洁.清晰,具有丰富和强大的类库. Python源代码遵循 GPL (GNU General P ...

最新文章

  1. tf.keras.layers.Flatten该网络中的第一层tf.keras.layers.Flatten将图像的格式从2d阵列(28乘28像素)转换为28 * 28 = 784像素的1d阵列。可以
  2. WorldWind学习系列一:顺利起航篇
  3. Microsoft CryptoAPI加密技术(二)
  4. 把URL参数解析成一个Json对象
  5. Qt学习(一):两个独立窗口的信号通信
  6. 有幸见到一朵花的绽放
  7. ASP.NET中利用ashx实现图片防盗链
  8. mongodb查询内嵌文档
  9. 数据库设计(五)第一范式(1NF)?
  10. 新代数控系统编程说明书_数控加工中心编程快速入门教程
  11. 两种消息模型: 点对点(queue)发布/订阅(topic)
  12. 十行代码--用python写一个USB病毒 (知乎 DeepWeaver)
  13. 全国青少年编程等级考试scratch四级真题2021年9月(含题库答题软件账号)
  14. 迪文串口屏的安装方法之卡扣结构带外壳智能屏
  15. 芯片短缺并没有妨碍英特尔创下“有史以来业绩最好的一年”
  16. vue h5微信公众号授权获取用户信息
  17. 微型计算机怎么没声音,我的电脑怎么没声音了
  18. devsecops的理解与建设
  19. matlab面试问题,一道面试题的matlab模拟代码
  20. oracle认证就业前景,华为认证的发展就业前景怎么样?

热门文章

  1. 【PL/SQL】 使用游标
  2. 解决overlay2存储驱动的磁盘配额问题
  3. 微信小程序支付异常:requestPayment:fail no permission
  4. vue2强制刷新,解决页面不会重新渲染的问题
  5. 如何检测圣诞树? [关闭]
  6. linux安装之后缺少命令,CentOS7安装成功后缺少命令的解决办法
  7. Win10笔记本电脑如何开启热点
  8. win11的drivers文件可以删除吗 windows11drivers文件是否可以删除的详细介绍
  9. python requests post请求_Python“requests”模块中的POST请求无法正常工作
  10. wos 文献被引_全世界最权威的文献检索工具,这6个检索技巧必须要掌握!