[英]How to make a python package usable from terminal
我创建了一个开源 python package来翻译文本或使用不同的翻译器自动翻译,并将其发布在 pypi 上。 到目前为止它运行良好,我收到了一些很好的反馈和批评。
现在我不是来宣传这个项目的。 相反,我想问,如何或什么是使 package 可从终端使用的正确方法。 就像在我的示例中,项目名称是deep_translator 。 我的目标是能够从终端使用它。 正是这样的:
$ deep_translator translate --translator "google" --from "german" --to "english" --text="blabla"
我知道如果有人在他的机器上安装了我的 package,package 可能会添加到路径中。 因此,它可以从终端访问,但这必须取决于操作系统,对吧?
那么这样做的正确方法是什么。 我正在使用 python>=3.6 但这实际上是一个普遍的问题,而不是 python 特定的问题。 提前致谢
您可以在setup.py
文件中注册命令行脚本。 安装 package 后,会在路径上放置一个二进制文件,该文件会调用配置的 function。 例如:
# setup.py
setup(
...
entry_points = {
'console_scripts': ['deep_translator=deep_translator.main_module:main_func'],
}
...
)
这里的main_module
是一个假设的模块,托管main_func
,它将被调用。 在此 function 中,您可以设置ArgumentParser
并解析 arguments:
# main_module.py
def main_func():
parser = argparse.ArgumentParser()
parser.add_argument(...)
# more arguments here
args = parser.parse_args()
# do stuff with args
__main__.py
您还可以使用顶级__main__.py
模块,然后通过-m
开关调用 package:
python -m deep_translator <args-go-here>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.