如何在Ubuntu中的可执行程序中转换python程序.py?

xRo*_*bot 25 python linux ubuntu

我有一个简单的python程序,我希望这个程序的可执行版本(对于Ubuntu Linux)避免在终端中运行它python myprogram.py.

我怎样才能做到这一点 ?

ghi*_*man 28

正如其他各方已经指出的那样,您可以将shebang添加到文件的顶部

#!/usr/bin/python 要么 #!/usr/bin/env python

并添加执行权限 chmod +x program.py

允许您运行模块 ./program.py

另一个选择是使用setuptools以pythonic方式安装它.创建一个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',],},
)
Run Code Online (Sandbox Code Playgroud)

这假设您有一个名为program的程序包,在其中有一个名为program.py的文件,其中包含一个名为main()的方法.要以这种方式安装,请运行setup.py

python setup.py install

这将把它安装到您的平台site-packages目录并创建一个名为prog的控制台脚本.然后,您可以prog从终端运行.

有关setup.py的更多信息的一个很好的资源是这个站点:http://mxm-mad-science.blogspot.com/2008/02/python-eggs-simple-introduction.html


rel*_*let 27

没有必要.您可以使用将文件标记为可执行文件

chmod +x filename
Run Code Online (Sandbox Code Playgroud)

确保它在第一行有一个shebang行:

#!/usr/bin/env python
Run Code Online (Sandbox Code Playgroud)

你的linux应该能够理解这个文件必须用python解释.然后可以将其"执行"为

./myprogram.py
Run Code Online (Sandbox Code Playgroud)

  • 此时你也可以删除`.py`后缀. (2认同)