Jam*_*lch 2 python command-line-interface python-3.x docker
而不是打字
$ python3 Program.py -<flags> arguments, etc
Run Code Online (Sandbox Code Playgroud)
我希望能够 DL git 克隆,然后能够输入
$ Program -<flags> arguments, etc
# program name without the .py extension
Run Code Online (Sandbox Code Playgroud)
我见过其他程序有 .yaml 文件、req.txt 文件并对它们进行了 docker 化,但我找不到任何可以显示如何执行此操作的内容。所有教程和指南都没有提及如何使它们成为简单的命令行程序。
我已经完成了所有 argparse 等,但我正在寻找如何对其进行 dockerize 并简单地运行它而无需导航到 dest 文件夹的指南或一些说明
如果您正在考虑分发该程序,您可能应该在包文件中添加 CLI 入口点setup.py。
例如:
ROOT/
- setup.py
- src/
- program.py
Run Code Online (Sandbox Code Playgroud)
src/program.py# program.py
def main():
pass
Run Code Online (Sandbox Code Playgroud)
setup.py# setup.py
from setuptools import find_packages, setup
setup(
name='my_program',
version='1.0.0',
packages=find_packages(),
entry_points={
'console_scripts': [
'Program=src.program:main'
]
}
)
Run Code Online (Sandbox Code Playgroud)
重要的一点是 line 'Program=src.program:main':它将名称Program(从命令行调用的名称)与main的函数相关联src/program.py。
请注意,该名称可以是任何名称 - 它不一定需要与您的包名称、python 文件名等相关。
您可以执行软件包的本地安装来测试这一点。
从ROOT目录中,键入$ pip install -e .然后,键入
$ Program
Run Code Online (Sandbox Code Playgroud)
在任何目录的终端中都将main执行src/program.py.
pip install如果任何人通过 PyPI 而不是您的本地安装来获取您的包,此行为是相同的。
| 归档时间: |
|
| 查看次数: |
469 次 |
| 最近记录: |