python - 如何从命令行使包可执行?

标签 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 这样的东西来让它成为一个独立的可执行文件。我仍然希望它能被解释,我只是想让发布更简单)

最佳答案

简短的回答是

当你制作 chmod +x mypackage 时你什么都不做,因为 mypackage 是一个目录并且目录已经有 execute 标志(或者你会无法列出他们的文件)。如果你输入:ls -l 你会看到。

您可以选择直接运行整个包而不安装它,这是您已经提到的方式:python -m mypackage,或者制作一个 shell 脚本来为您执行此操作。

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

关于python - 如何从命令行使包可执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42033360/

相关文章:

python - 未创建 Django 身份验证模型

没有root权限的Linux原始输入?

linux - 查看所有机器上给定用户的进程

php - 使用 SSH 和 CHMOD 更改文件权限以允许文件上传

PHP:get_current_user() 与 exec ('whoami' )

Python3 SQLAlchemy 删除重复项

python - Pandas:计算 2 列之间的时间(以分钟为单位),不包括周末、公共(public)假期和考虑营业时间

python - 使用文件同时读写失败

c++ - 使用 C/C++ 处理 sysfs 内容的最佳方法是什么?

python - 无法从 putty 运行 .py 文件,语法错误 : word unexpected (expecting ")")