无法运行特定的 .pyc 文件

7

使用Unix工作环境编译Python文件后:

import py_compile
py_compile.compile('server.py')

我在同一个目录下得到了.pyc文件,但是当我尝试在putty中使用'./server.pyc'运行这个文件时,输出的只是一堆乱码,什么都没发生。

所以问题是,如何正确地将.py文件编译成.pyc文件,并如何运行这个.pyc文件?

PS:我已经测试编译并运行了一个基本脚本,它可以正常运行。


2
直接执行源代码文件.py有什么不好的理由吗? - Markus Unterwaditzer
也许并没有什么足够好的理由,但将py转换为pyc是一种很弱的混淆方式,但总比什么都不做要好。此外,pyc文件可以节省编译py到字节码所花费的时间,因此程序在第一次启动时会稍微快一些。 - ebk
2个回答

14

编译Python文件并不会像C一样产生可执行文件,你需要用Python解释器来解释编译后的Python代码。

$ python
>>> import py_compile
>>> py_compile.compile('server.py')
>>> ^D
$ python ./server.pyc

编译过的 Python 代码唯一的变化就是加载时间稍微快了一点。Python 解释器在加载代码时已经对其进行了编译,而这并不需要太长时间。


6
那就解决它。你没告诉我它在哪里,我不喜欢玩游戏。 - Dietrich Epp
@DietrichEpp 谢谢!我知道这是一个旧答案,但它仍然值得得到更多的赞,再次感谢您的帮助,真的让我的一天变得更美好了。 - user5870134

6
运行第一个命令以生成server.pyc文件。然后可以运行第二个命令来运行server.pyc模块。-c选项-m选项在Python文档中有描述。
python -c "import server"
python -m server

使用“-m”启动Python程序的方式非常好,因为它适用于pyc和py文件。即使您以pyc-only形式部署程序,该命令仍然有效。 - ebk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接