如何解决如何像普通系统CLI一样运行Python驱动的CLI?
我想像其他{@ {1}}, Arduino: 1.8.13 (Mac OS X),Board: "Arduino Nano,ATmega328P (Old Bootloader)"
fork/exec /Users/vladimir/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/avr-g++: no such file or directory
Error compiling for board Arduino Nano.
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
等cli工具一样运行自己构建的CLI。目前,我将cli运行为:kubectl
;相反,我想运行:redis
,其中invdb是Python软件包。
项目存储库的结构为:
python3 cli.py subarg --args
解决方法
setuptools(或者是distutils?这行太模糊了)提供了entry_points.console_scripts选项,可以在安装软件包时为您执行此操作。我将在摘要的底部提供示例存储库。
像这样构造项目树:
# /mypackage/mymodule.py
print("We did it!")
# /pyproject.toml
[build-system]
requires = ["setuptools","wheel"]
build-backend = "setuptools.build_meta"
# this is required for Python to recognize setuptools as the build backend
[metadata]
name = sample_module
version = 0.0.1
author = Adam Smith
description = console_script example
[bdist_wheel]
universal = true
[options]
packages = my_package
python_requires = >=2.7
entry_points =
[console_scripts]
sample_module = my_package.my_module:main
然后在shell上运行以下命令:
$ python3 -mpip install .
(ed. this will install the file locally. To build a wheel (to install elsewhere) try pep517)
如果收到有关安装脚本不在PATH上的警告,则应考虑添加它。否则,只需运行新脚本
$ sample_module
We did it!
GitLab:nottheeconomist/console_script_example
由于您已经拥有setup.py,请考虑将以下条目添加到您的setuptools.setup
呼叫中:
# ...
setuptools.setup(
# ...
entry_points = {
'console_scripts': ['sample_module=my_package.my_module:main']
}
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。