我如何设置 python CLI 应用程序,以便我可以在不直接引用解释器的情况下使用它?
How can I setup a python CLI application so that I can use it without directly referring to the interpreter?
我想构建一个名为 helloworld 的应用程序,在 python 中有一个命令行界面。我的应用程序作为多个嵌套模块和一个顶级模块 main.py.
说布局是:
helloworld/
helloworld/
__init__.py
module1/
module2/
module3/
setup.py
main.py
此时,一旦安装了我的项目,我就可以 运行 使用
#> python path/to/helloworld/main.py arg1 arg2 arg3
我希望能够使用以下命令与程序交互:
#> helloworld arg1 arg2 arg3
,以类似的方式,例如,Flask 框架带有一个命令行应用程序,我可以使用 #> flask run
。
我环顾四周,发现了一些建议使用 shebang 的问题。据我所知,这不是我想要的。
我想要一个独立的应用程序,我可以使用 pip 安装然后直接启动而不需要任何参考 python 解释器。
我该怎么办?
编辑
对我来说一个重要的要求是可以使用 pip 安装软件包并且命令行界面立即可用。 Shebangs/fiddling 手动使用 path/creating 额外的 shell 脚本无法解决我的问题。
您应该将 main.py 添加到您的 PATH 中。当你 运行 宁 flask run
时会发生什么是你的终端在 PATH 中查找命令烧瓶和 运行s 它指向的程序。您可以将其视为 Flask 程序的一种快捷方式。
通过将您的程序添加到您的 PATH,您可以告诉计算机如果您在终端中键入 helloworld
,终端应该 运行 /my/path/to/helloworld.py
.
我不知道 OS 你在看什么,所以这里是关于如何添加 PATH 变量的最常见 OS 的链接。
编辑:在您给出更多解释后,setuptools
就是您要查找的内容。请查看 this 参考以了解如何使用它。
关于如何在 pip 安装期间告诉 setuptools 添加脚本到 Python Scripts-folder 的解释 here。然后,您可以将该脚本设为例如调用您的 Python-script 的 bat-file。通过这种方式,您既不需要为脚本编写 .py
到 运行,又会自动发生。
我想构建一个名为 helloworld 的应用程序,在 python 中有一个命令行界面。我的应用程序作为多个嵌套模块和一个顶级模块 main.py.
说布局是:
helloworld/
helloworld/
__init__.py
module1/
module2/
module3/
setup.py
main.py
此时,一旦安装了我的项目,我就可以 运行 使用
#> python path/to/helloworld/main.py arg1 arg2 arg3
我希望能够使用以下命令与程序交互:
#> helloworld arg1 arg2 arg3
,以类似的方式,例如,Flask 框架带有一个命令行应用程序,我可以使用 #> flask run
。
我环顾四周,发现了一些建议使用 shebang 的问题。据我所知,这不是我想要的。
我想要一个独立的应用程序,我可以使用 pip 安装然后直接启动而不需要任何参考 python 解释器。
我该怎么办?
编辑
对我来说一个重要的要求是可以使用 pip 安装软件包并且命令行界面立即可用。 Shebangs/fiddling 手动使用 path/creating 额外的 shell 脚本无法解决我的问题。
您应该将 main.py 添加到您的 PATH 中。当你 运行 宁 flask run
时会发生什么是你的终端在 PATH 中查找命令烧瓶和 运行s 它指向的程序。您可以将其视为 Flask 程序的一种快捷方式。
通过将您的程序添加到您的 PATH,您可以告诉计算机如果您在终端中键入 helloworld
,终端应该 运行 /my/path/to/helloworld.py
.
我不知道 OS 你在看什么,所以这里是关于如何添加 PATH 变量的最常见 OS 的链接。
编辑:在您给出更多解释后,setuptools
就是您要查找的内容。请查看 this 参考以了解如何使用它。
关于如何在 pip 安装期间告诉 setuptools 添加脚本到 Python Scripts-folder 的解释 here。然后,您可以将该脚本设为例如调用您的 Python-script 的 bat-file。通过这种方式,您既不需要为脚本编写 .py
到 运行,又会自动发生。