如何将entry_point/console脚本添加到使用参数的setup.py中



我想向setup.py添加一个入口点并传递一个参数。这可能吗?如果可能,怎么做?我试过了,也查过文档,但不知道怎么做。

示例:包格式:

mypackage/
setup.py
mypackage/
__main__.py

main.py包含:

def main(print_me=False):
if print_me:
print("test")

setup.py包含控制台scipt,看起来像:

entry_points={
'console_scripts': [
'test = mypackage.__main__:main(print_me=True)'
]}

这似乎不起作用,如果有正确的方法,该怎么办?

根据setuptools'关于"自动脚本创建"的文档,这是不可能的:

您指定的函数是在没有参数的情况下调用的

或者你可以做这样的事情:

__main__.py:中

def main_true():
return main(print_me=True)

setup.py:中

entry_points={
'console_scripts': [
'test = mypackage.__main__:main_true'
],
},

但在这种特殊情况下,由于True已经是参数print_me的默认参数,因此这可能没有必要,将'test = mypackage.__main__:main(print_me=True)'更改为'test = mypackage.__main__:main'就足够了。

相关内容

  • 没有找到相关文章

最新更新