我想从命令行创建一个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这样的东西,使其成为一个独立的可执行文件。我仍然期待它被解释,我只想制作启动更简单)
答案 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/