我正在使用setuptools编写一个Python脚本
安装后,我会:
$ megazord -i input -d database -v xx-xx -w yy-yy
如果我在运行它的话我会的。/就像这样
但是,我得到:
Traceback (most recent call last):
File "/usr/local/bin/megazord", line 9, in <module>
load_entry_point('megazord==1.0.0', 'console_scripts', 'megazord')()
TypeError: main() takes exactly 1 argument (0 given)
看起来setuptools没有将我的参数发送到main()进行解析(通过optparse)
以下是我的入口点设置工具配置:
entry_points = {
'console_scripts': [
'megazord = megazord.megazord:main',
'megazord-benchmark = megazord.benchmark:main',
'megazord-hash = megazord.mzhash:main',
'megazord-mutate = megazord.mutator:main',
]
}
有什么想法吗?
setuptools控制台脚本入口点需要一个没有参数的函数。
幸运的是,optparse(命令行选项的解析器)不需要传递任何参数,它将读入sys.argv[1:]并将其用作输入。
为了全面了解
megazord.py
的样子,使用@Jeffrey Harris建议使用一个不错的库来解析输入。像上面那样使用它,你会得到
因为它们都是可选参数
相关问题 更多 >
编程相关推荐