python下编译py成pyc和pyo
其实很简单,
用
python -m py_compile file.py
python -m py_compile /root/src/{file1,file2}.py
编译成pyc文件。
也可以写份脚本来做这事:
Code:
import py_compile
py_compile.compile('path') //path是包括.py文件名的路径
用
python -O -m py_compile file.py
编译成pyo文件。
1.其中的 -m 相当于脚本中的import,这里的-m py_compile 相当于上面的 import py_compile
2.-O 如果改成 -OO 则是删除相应的 pyo文件,具体帮助可以在控制台输入 python -h 查看
========================
from:http://blogold.chinaunix.net/u3/93255/showart_1944929.html
什么是pyc文件
pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由python的虚拟机来执行的,这个是类似于JAVA或者.NET的虚拟机的概念。pyc的内容,是跟python的版本相关的,不同版本编译后的pyc文件是不同的,2.5编译的pyc文件,2.4版本的 python是无法执行的。
什么是pyo文件
pyo是优化编译后的程序 python -O 源文件即可将源程序编译为pyo文件
什么是pyd文件
pyd是python的动态链接库。
为什么需要pyc文件
这个需求太明显了,因为py文件是可以直接看到源码的,如果你是开发商业软件的话,不可能把源码也泄漏出去吧?所以就需要编译为pyc后,再发布出去。当然,pyc文件也是可以反编译的,不同版本编译后的pyc文件是不同的,根据python源码中提供的opcode,可以根据pyc文件反编译出 py文件源码,网上可以找到一个反编译python2.3版本的pyc文件的工具,不过该工具从python2.4开始就要收费了,如果需要反编译出新版本的pyc文件的话,就需要自己动手了(俺暂时还没这能力^--^),不过你可以自己修改python的源代码中的opcode文件,重新编译 python,从而防止不法分子的破解。
生成单个pyc文件
python就是个好东西,它提供了内置的类库来实现把py文件编译为pyc文件,这个模块就是 py_compile 模块。
使用方法非常简单,如下所示,直接在idle中,就可以把一个py文件编译为pyc文件了。(假设在windows环境下)
import py_compile
py_compile.compile(r'H:\game\test.py')
compile函数原型:
compile(file[, cfile[, dfile[, doraise]]])
file 表示需要编译的py文件的路径
cfile 表示编译后的pyc文件名称和路径,默认为直接在file文件名后加c 或者 o,o表示优化的字节码
from:http://www.cnblogs.com/dkblog/archive/2009/04/16/1980757.html
B. 如何编译Python程序
1、说明
编译python程序就是把python脚本转换成操作系统中的可执行文件,一般使用pyinstaller来完成。
2、步骤
1)安装pyinstaller
使用pip install pyinstaller命令来安装
2)编译脚本
python安装目录\script\pyinstaller 脚本文件名
3)完成
执行脚本后就可以在脚本目录生成dist目录,目录就有打包好的可执行文件
3、备注
pyinstaller参数
-w指令
直接发布的exe应用带命令行调试窗口,在指令内加入-w命令可以屏蔽
-F指令
注意指令区分大小写。这里是大写。使用-F指令可以把应用打包成一个独立的exe文件,否则是一个带各种dll和依赖文件的文件夹
-p指令
这个指令后面可以增加pyinstaller搜索模块的路径。因为应用打包涉及的模块很多。这里可以自己添加路径。不过经过笔者测试,site-packages目录下都是可以被识别的,不需要再手动添加
C. python源程序执行的方式
python源程序执行的方式如下:
1、在命令行输入ipython或ipython3进入交互式shell环境,如果不行的话需要安装ipython和python镜像,配置方式:pip3 install ipython -i ctrl+D或者exit 推出ipython ipython的优点:支持自动补全和执行linux命令。
2、在命令行窗口输入python (官方的shell),在这里可以直接输入python程序代码,退出用exit() 或者 ctrl+D。
3、集成开发环境:PyCharm 类似IDEA,推荐教程: 《Python教程》。
编译执行
所谓编译执行就是源代码经过编译器编译处理,生成目标机器码,就是机器能直接运行的二进制代码,下次运行时无需重新编译。不过它是针对特定CPU体系的,这些目标代码只能在特定平台执行。
如果这个程序需要在另外一种 CPU 上面运行,这个代码就必须重新编译。它不具备可移植性,但是执行速度快,C、C++这类语言属于编译型语言。
D. 绠杩皃ython绋嫔簭镄勮繍琛岃繃绋
Python绋嫔簭镄勮繍琛岃繃绋嫔彲浠ュ垎涓轰互涓嫔嚑涓姝ラわ细
1. 婧愪唬镰佺殑缂栧啓锛氶栧厛锛岀▼搴忓憳浼氢娇鐢ㄦ枃链缂栬緫鍣锛埚係ublime Text銆丯otepad++銆乂isual Studio Code绛夛级缂栧啓Python浠g爜锛岃繖浜涗唬镰佽淇濆瓨涓.py鏂囦欢銆
2. 婧愪唬镰佺殑缂栬疟锛歅ython瑙i喷鍣ㄤ细灏嗘簮浠g爜杞鎹涓哄瓧鑺傜爜锛坆ytecode锛夛纴杩欐槸涓绉崭绠绾ц瑷锛屽彲浠ヨ玃ython瑙i喷鍣ㄦ墽琛屻傝繖涓杩囩▼绉颁负缂栬疟銆
3. 瀛楄妭镰佺殑镓ц锛歅ython瑙i喷鍣ㄤ细镓ц屽瓧鑺傜爜锛岃繖鏄鍦ㄥ唴瀛树腑杩涜岀殑銆侾ython瑙i喷鍣ㄤ细镙规嵁瀛楄妭镰佺殑鎸囦护𨱒ユ墽琛岀▼搴忋
4. 瀵硅薄妯″瀷镄勮繍琛锛歅ython链変竴涓瀵硅薄妯″瀷锛屽畠鍏佽窹ython浠g爜鍜孭ython鏁版嵁绫诲瀷锛埚傚垪琛ㄣ佸瓧鍏搞佸瓧绗︿覆绛夛级杩涜屼氦浜掋傝繖涓妯″瀷鍦ㄨ繍琛屾椂锷ㄦ佸湴鍒涘缓鍜屼慨鏀瑰硅薄銆
5. 寮傚父澶勭悊锛歅ython绋嫔簭涓鍙鑳戒细鍙戠敓寮傚父锛岃В閲婂櫒浼氭崟銮峰苟澶勭悊杩欎簺寮傚父锛屼互淇濊瘉绋嫔簭镄勭ǔ瀹氭с
6. 绋嫔簭缁撴潫锛氩綋镓链夐渶瑕佹墽琛岀殑镎崭綔閮藉畬鎴愬悗锛孭ython绋嫔簭灏变细缁撴潫銆
褰撹繍琛孭ython绋嫔簭镞讹纴鎴戜滑浼氶亣鍒板嚑绉崭笉钖岀骇鍒镄勮繍琛岀幆澧冿细
浜や簰寮忕幆澧冿细褰扑綘镓揿紑涓涓狿ython浜や簰寮忕幆澧冿纸濡侷Python鎴朠ython shell锛夋椂锛屽彲浠ョ洿鎺ヨ緭鍏ュ拰镓ц孭ython浠g爜銆傝繖涓嶉渶瑕佸皢浠g爜淇濆瓨涓.py鏂囦欢锛屽洜涓轰綘鍙浠ョ洿鎺ュ湪锻戒护琛屼腑杈揿叆骞舵墽琛屻
鑴氭湰鐜澧冿细褰扑綘灏哖ython浠g爜淇濆瓨涓.py鏂囦欢镞讹纴浣犲彲浠ュ湪锻戒护琛屼腑鐩存帴杩愯岃繖涓鏂囦欢銆傝繖浼氲皟鐢≒ython瑙i喷鍣ㄦ潵镓ц岃ユ枃浠朵腑镄勪唬镰併
IDE鎴栫紪杈戝櫒鐜澧冿细璁稿氶泦鎴愬紑鍙戠幆澧冿纸IDE锛夊拰鏂囨湰缂栬緫鍣锛埚侾yCharm銆乂isual Studio Code绛夛级鎻愪緵浜呜繍琛孭ython浠g爜镄勫姛鑳姐傝繖浜涘伐鍏烽氩父浼氩皢浣犵殑浠g爜淇濆瓨涓.py鏂囦欢锛屽苟鍦ㄩ渶瑕佹椂镊锷ㄨ皟鐢≒ython瑙i喷鍣ㄦ潵镓ц屼唬镰併
浠ヤ笂灏辨槸Python绋嫔簭镄勮繍琛岃繃绋嬨傝繖涓杩囩▼娑夊强鍒颁简璁稿氩簳灞傛傚康锛屽傜紪璇戙佸瓧鑺傜爜銆佸硅薄妯″瀷绛夛纴杩欎簺鏄鐞呜ВPython璇瑷镄勯吨瑕侀儴鍒嗐傚笇链涜繖涓锲炵瓟鑳藉熷府锷╀綘镟村ソ鍦扮悊瑙Python绋嫔簭镄勮繍琛岃繃绋嬨
E. python如何运行程序
安装并配置完成之后,我们就可以编写第一个python程序。学过其他语言的兄弟姐妹们,都知道语言的入门程序就是hello world。那么,我们这里也以hello world来抛砖引玉,打开python学习的大门。
python运行有两种方式,一种是在python交互式命令行下运行;另一种是使用文本编辑器,在命令行中直接运行。
注意:以上两种运行方式,都是以CPython解释器来编译运行的。当然也可以将python代码写入到eclipse中,使用JPython解释器运行,需要自己配置环境。(推荐学习:Python视频教程)
一、命令行与交互式命令行
首先要搞清楚这个命令行的概念。
1.命令行
定义:出现类似“C:\>”,则是在Windows提供的命令行模式
进入模式的方式:Windows中,直接win+r键进入
2.交互式命令行
定义:出现“>>>”,则是python的交互式命令行
进入模式的方式:Windows命令行中输入python即可
二、交互式命令行中运行python代码
cmd窗口中,输入python后,进入python交互式命令行。直接输入代码:
print ‘hello world!’
python-23.png
可以看到界面上运行结果,表示运行成功!
在Python的交互式命令行写程序,好处是一下就能得到结果,坏处是没法保存,下次还想运行的时候,还得再敲一遍。
所以,实际开发的时候,我们总是使用一个文本编辑器来写代码,写完了,保存为一个文件,这样,程序就可以反复运行了。
三、命令行运行python代码
1.python代码编写及保存
我们将“hello world!”程序用文本编辑器写出来,保存下来,并命名,这里我们命名为hello.py,保存到F:\workspace。
命名时,要注意:
1)文件要以.py结尾,其他都不可以
2)文件名只能是英文字母、数字和下划线的组合。
文本编辑器推荐:Notepad++、Sublime Text
2.python代码运行
在命令行模式中,输入python F:\workspace\hello.py,即可运行成功。
运行时,要注意:
1)python文件存储路径是相对路径,运行时,一定要说明python文件的存储路径,
当然,用Python开发程序,完全可以一边在文本编辑器里写代码,一边开一个交互式命令窗口,在写代码的过程中,把部分代码粘到命令行去验证,事半功倍!