正如标题所示,我正在尝试使 python 脚本可以从命令行访问。我找到了像 click 这样的库和 argv这使得访问从命令行传递的参数变得容易,但用户仍然必须通过 Python 运行脚本。
而不是
python /location/to/myscript.py
我希望能够做到
myscript
从任何目录
据我了解,我可以通过编辑 PATH 变量在我的计算机上实现此目的。但是,我希望能够简单地执行以下操作:
pip install myscript
然后通过从任何地方键入 myscript
来访问脚本。我是否需要在 setup.py
中放入一些特殊代码?
最佳答案
使用console_scripts
Hook 到特定的Python方法(不是整个可执行文件),setup.py
文件:
from setuptools import setup
setup(
...
entry_points = {
'console_scripts': ['mybinary=mymodule.command_line:cli'],
},
name='mymodule',
...
)
command_line.py
脚本将是:
import mymodule
def cli():
print("Hello world!")
项目目录如下所示:
myproject/
mymodule/
__init__.py
command_line.py
...
setup.py
Setuptools will generate a standalone script ‘shim’ which imports your module and calls the registered function.
该垫片允许您直接调用 mybinary
并确保它被 python 正确调用。它提供特定于平台的垫片(即,在 Windows 上它生成一个 .exe)。
关于python - 如何在Python中创建一个可以通过PIP安装的CLI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56534678/