如何将Python程序.py转化为可执行程序在Ubuntu上运行?

30 投票
5 回答
58079 浏览
提问于 2025-04-16 05:40

我有一个简单的Python程序,我想要一个可以直接运行的版本(适用于Ubuntu Linux),这样就不用在终端里输入 python myprogram.py 来运行它了。

我该怎么做呢?

5 个回答

3

你可以试试用一个叫 cxfreeze 的模块。

31

正如其他人已经提到的,你可以在文件的最上面加上一个特殊的标记,叫做shebang。

这个标记可以是 #!/usr/bin/python 或者 #!/usr/bin/env python

然后,你需要给这个文件添加执行权限,使用命令 chmod +x program.py

这样你就可以通过 ./program.py 来运行你的程序了。

还有一种方法是用一种更“python风格”的方式来安装,使用setuptools。你需要创建一个叫做setup.py的文件,并在里面写入以下内容:

from setuptools import setup

setup(
    name = 'Program',
    version = '0.1',
    description = 'An example of an installable program',
    author = 'ghickman',
    url = '',
    license = 'MIT',
    packages = ['program'],
    entry_points = {'console_scripts': ['prog = program.program',],},
)

这里假设你有一个叫做program的包,里面有一个叫做program.py的文件,并且这个文件里有一个叫做main()的方法。要用这种方式安装,你可以这样运行setup.py:

python setup.py install

这条命令会把你的程序安装到你电脑上Python的site-packages目录里,并创建一个叫做prog的控制台脚本。之后你就可以在终端中运行 prog 了。

如果你想了解更多关于setup.py的信息,可以参考这个网站: http://mxm-mad-science.blogspot.com/2008/02/python-eggs-simple-introduction.html

35

其实没必要这么做。你可以通过以下方式把文件标记为可执行:

chmod +x filename

确保文件的第一行有一个叫做“shebang”的标记:

#!/usr/bin/env python

这样你的Linux系统就能明白这个文件需要用Python来解释。然后你就可以像这样“执行”它:

./myprogram.py

撰写回答