如何从终端使用python包
我创建了一个用于翻译文本或使用不同翻译器自动翻译的应用程序,并将其发布在pypi上。到目前为止,它工作得很好,我收到了一些很好的反馈和批评 现在我不是来宣传这个项目的。相反,我想问的是,如何或什么是使包从终端可用的正确方法。就像在我的示例中一样,项目名称是deep\u translator。我的目标是能够从终端使用它。正是这样:如何从终端使用python包,python,python-3.x,terminal,open-source,Python,Python 3.x,Terminal,Open Source,我创建了一个用于翻译文本或使用不同翻译器自动翻译的应用程序,并将其发布在pypi上。到目前为止,它工作得很好,我收到了一些很好的反馈和批评 现在我不是来宣传这个项目的。相反,我想问的是,如何或什么是使包从终端可用的正确方法。就像在我的示例中一样,项目名称是deep\u translator。我的目标是能够从终端使用它。正是这样: $ deep_translator translate --translator "google" --from "german"
$ deep_translator translate --translator "google" --from "german" --to "english" --text="blabla"
我知道如果有人在他的机器上安装我的包,该包可能会添加到路径中。因此,它可以从终端访问,但这必须取决于操作系统,对吗
那么,正确的方法是什么呢。我正在使用python>=3.6,但这实际上是一个一般性问题,而不是特定于python的问题。提前感谢您可以在setup.py
文件中注册。安装包时,会在路径上放置一个二进制文件,该路径将调用已配置的函数。例如:
#setup.py
设置(
...
入口点={
'控制台脚本':['deep_translator=deep_translator.main_模块:main_func'],
}
...
)
这里的main_module
是一个假设的模块,它承载一个将被调用的函数main_func
。在此函数中,您可以设置并分析参数:
#main_module.py
def main_func():
parser=argparse.ArgumentParser()
parser.add_参数(…)
#这里有更多的论点
args=parser.parse_args()
#用args做东西
备选方案:\uuuuu main\uuuuu.py
您还可以使用顶级的\uuuu main\uuuu.py
模块,然后通过-m
开关调用包:
python -m deep_translator <args-go-here>
python-m深\u转换器
我尝试使用argparse,但没有成功。无论我做什么,我总是会遇到这样的错误:错误:无法识别的参数:@basilisk好吧,您必须通过add\u argument
注册您计划使用的所有参数。谢谢;)我已经设法让它工作了,但你的回答是一个很好的暗示;)