我想向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'
就足够了。