linux可执行文件不工作,但脚本在python中工作
Posted
技术标签:
【中文标题】linux可执行文件不工作,但脚本在python中工作【英文标题】:linux executable file is not working but script is working in python 【发布时间】:2014-03-02 17:42:54 【问题描述】:我编写了 1 个运行良好的 python 脚本。但是当我通过 cx_freeze 创建可执行文件并单击 Linux 中的可执行文件时。它没有显示输出窗口。它在日志文件中没有给出任何错误。
任何人告诉我如何解决这个问题。我怎样才能从可执行文件中看到至少错误。
在脚本文件的顶部我还写了#!/usr/bin/env python
。
【问题讨论】:
你使用的是什么Linux发行版? Ubuntu? 尝试在终端运行您的代码。像这样:python myprogram.py
。这应该会给你你想要的适当的错误消息。问题也可能与您的代码本身有关。你应该发布它。如果是专业工作不想透露,那就再写一个和原版尽可能相似的临时程序
是的,我正在使用 Ubuntu,我也在终端上运行,它运行良好。只有这个可执行文件没有运行
交叉张贴在superuser.com/questions/723678/…
【参考方案1】:
当您单击可执行文件时,有两个重要的属性。
该文件必须可由用户执行 文件类型必须被识别为可执行文件Linux 中的文件权限格式为:
<owner><group><everyone>
要执行一个文件,它必须是用户r-x
才有权限。
还需要那种可执行文件。这是由文件扩展名声明的。此外,使用 Linux 中的脚本文件,您可以在文件的第一行声明文件的类型。
您的声明是:
#!/usr/bin/env python
这是不正确的,它应该指向你想要用来编译和执行代码的可执行文件。 #!/usr/bin/python
是正确的声明。
【讨论】:
#!/usr/bin/env python
在 *nix-like 系统上很好;甚至是推荐的方式in the Python documentation。
另见Why do people write #!/usr/bin/env python on the first line of a Python script?和Why is '#!/usr/bin/env python' supposedly more correct than just '#!/usr/bin/python'?
使用pyinstaller
为python创建可执行文件。它是为linux和windows创建可执行文件的最佳选择。以上是关于linux可执行文件不工作,但脚本在python中工作的主要内容,如果未能解决你的问题,请参考以下文章