如何将Python程序.py转化为可执行程序在Ubuntu上运行?
我有一个简单的Python程序,我想要一个可以直接运行的版本(适用于Ubuntu Linux),这样就不用在终端里输入 python myprogram.py
来运行它了。
我该怎么做呢?
5 个回答
你可以试试用一个叫 cxfreeze 的模块。
正如其他人已经提到的,你可以在文件的最上面加上一个特殊的标记,叫做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
其实没必要这么做。你可以通过以下方式把文件标记为可执行:
chmod +x filename
确保文件的第一行有一个叫做“shebang”的标记:
#!/usr/bin/env python
这样你的Linux系统就能明白这个文件需要用Python来解释。然后你就可以像这样“执行”它:
./myprogram.py