我在linux上使用啥来使python程序可执行
Posted
技术标签:
【中文标题】我在linux上使用啥来使python程序可执行【英文标题】:What do I use on linux to make a python program executable我在linux上使用什么来使python程序可执行 【发布时间】:2010-09-23 05:21:51 【问题描述】:我刚刚安装了一个 linux 系统(Kubuntu),想知道是否有一个程序可以使 python 程序在 linux 上可执行。
【问题讨论】:
已经在这里回答http://***.com/questions/193077/... 欺骗***.com/questions/193077/… 不,那里没有答案。该问题询问有关分发问题。 不,这不是骗子。该问题与分发 python 软件有关,以避免库可用性和兼容性问题。 【参考方案1】:只需将其放在脚本的第一行即可:
#!/usr/bin/env python
使文件可执行
chmod +x myfile.py
执行
./myfile.py
【讨论】:
我很困惑。当哈希应该使其成为注释行时,“#!/usr/bin/env python”如何工作?我尝试在没有哈希线的情况下运行脚本,但它不起作用。很明显,该行是必需的,但如果是注释,它如何工作? 如果您将脚本发送给其他程序员,这很好。但这不是将 Python 程序分发给最终用户的合适方式。如果用户没有安装 Python 怎么办?如果他们这样做了,但它与您编写程序的版本不同怎么办?总的来说,这只适用于一小部分用户,尤其是在 Windows 上。 @MathManiac 如果您按照您的暗示继续,大约 15% 的用户将无法运行您的应用程序。这将是一个沉重的支持负担,更不用说极其敌对的用户体验,这将产生大量可恶的“应用程序 X 烂”帖子。我坚持我的说法,这不是向最终用户分发应用程序的合适方式。 @PrahladYeri 使用 #/usr/bin/env python3 @Nav 这叫做Shebang。它被注释掉是因为它不应该被 python 解释。它向操作系统提供信息。更具体地说,它说明了应该使用什么程序来执行脚本。【参考方案2】:如果您想在 Python 中获取独立的二进制应用程序,请尝试使用 py2exe 或 PyInstaller 等工具。
【讨论】:
关键字:独立 我可以反编译 PyInstaller 的输出吗?【参考方案3】:您可以使用 PyInstaller。它会生成一个构建 dist,因此您可以将其作为单个“二进制”文件执行。
http://pythonhosted.org/PyInstaller/#using-pyinstaller
Python 3 还具有创建构建分布的本机选项:
https://docs.python.org/3/distutils/builtdist.html
【讨论】:
问题不在于制作 python 脚本 exe/elf 文件 对不起,问题似乎就是这样! “想知道是否有一个程序可以使 python 程序在 linux 上可执行。” 非常感谢,@LeoPepe,我刚刚为我的班级创建了一个出勤记录器,它从文件中获取输入(在场学生的姓名)并在输出文件中提供出勤率,只需单击在 pyinstaller 的帮助下制作的可运行脚本。【参考方案4】:将这些行放在代码的开头将告诉您的操作系统查找执行 python 脚本所需的二进制程序,即它是 python 解释器。
所以它取决于你的操作系统,它保存了 python 解释器。由于我有 Ubuntu 作为操作系统,它将 python 解释器保存在 /usr/bin/python
中,所以我必须在我的 python 脚本的开头写下这一行;
#!/usr/bin/python
完成并保存代码后
启动你的命令终端
确保脚本位于您当前的工作目录中
输入chmod +x script_name.py
现在您可以通过单击脚本来启动脚本。将出现一个警告框;在警告框中按“运行”或“在终端中运行”;或者,在终端提示符下,输入./script_name.py
【讨论】:
【参考方案5】:如果想把hello.py
做成可执行文件
首先找到python在你的操作系统中的路径:which python
它通常位于“/usr/bin/python”文件夹下。
在hello.py
的第一行应添加:#!/usr/bin/python
然后通过linux命令chmod
应该让它像这样可执行:chmod +x hello.py
并使用./hello.py
执行
【讨论】:
【参考方案6】:我执行以下操作:
-
输入#! /usr/bin/env python3 在脚本顶部
chmod u+x file.py
在文件名中将 .py 更改为 .command
这实际上将文件转换为 bash 可执行文件。当你双击它时,它应该运行。这适用于基于 Unix 的系统。
【讨论】:
【参考方案7】:另一种方法是创建别名。 例如在终端写:
alias printhello='python /home/hello_world.py'
编写printhello
将运行hello_world.py,但这只是暂时的。
要使别名永久化,您必须将它们添加到 bashrc,您可以通过在终端中编写它来编辑它:
gedit ~/.bashrc
【讨论】:
【参考方案8】:执行以下步骤:
-
将此作为第一行添加到执行入口点 python 文件中
#!/usr/bin/python
-
将脚本修改为可执行文件
chmod +x <script-name>.py
-
从
/usr/local/bin
创建指向您的<script-name>.py
的符号链接
ln -s /usr/local/bin/<executable-name-you-want> <path-to-your-script>
无论您是否有单个独立的 Python 脚本或是否有多个由主文件调用的依赖脚本,这些步骤都有效。
【讨论】:
以上是关于我在linux上使用啥来使python程序可执行的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Pyinstaller 为 Linux 机器创建可执行文件?