如何从命令行生成包可执行文件?

时间:2017-02-03 21:35:22

标签: python linux chmod

我想从命令行创建一个python包可执行文件。

我知道您可以chmod +x myfile.py myfile.py#!/usr/bin/env开头,使用./myfile.py生成单个文件。我也知道你可以python -m mypackage运行一个包含__main__.py的包。

但是,如果我将shebang行添加到包的__main__.py,运行chmod +x mypackage,然后尝试./mypackage,则会收到错误-bash: ./mypackage: Is a directory

是否可以运行这样的包?

(要明确的是,我正在寻找像py2exe这样的东西,使其成为一个独立的可执行文件。我仍然期待它被解释,我只想制作启动更简单)

2 个答案:

答案 0 :(得分:0)

简短回答是

当您chmod +x mypackage时,您无所事事,因为mypackage是一个目录,目录已经有执行标志(或者您将无法列出他们的文件)。如果您输入:ls -l,您会看到。

您可以选择直接运行整个软件包而不安装它是您已经提到过的方式:python -m mypackage,或者创建一个可以为您完成此操作的shell脚本。

我看到你的意图是只执行./something并且你的应用程序开始工作而不指定前面的python,并且这也不是全局安装的。最简单的方法是放置一个将启动包的shell脚本。

答案 1 :(得分:-1)

其中包含您要查找的内容。引导您完成如何设置软件包的步骤,以便可以使用命令行应用程序/界面。

建议使用argparse代替sys.argv。帖子的评论也有助于获得更多更新的提示。

https://gehrcke.de/2014/02/distributing-a-python-command-line-application/

相关问题