【发布时间】:2018-11-09 14:35:45
【问题描述】:
我有一个模块 sfind.py。我怎样才能做到这一点,以便我可以通过不带 py 前缀的文件名运行脚本?
python sfind instead python sfind.py
sfind.py
import argparse
def createParser():
some logic
return parser
def main(namespace):
some logic
if __name__ == '__main__':
parser = createParser()
namespace = parser.parse_args()
main(namespace)
我尝试用 setuptools 来做,在同一目录中创建了新文件 setup.py。
setup.py
从 setuptools 导入设置
setup(
name='sfind',
version='0.1',
packages=['sfind'],
entry_points={
'console_scripts': [
'sfind=sfind:__main__'
]
})
但是发生了错误
python: can't open file 'sfind': [Errno 2] No such file or directory
谁能帮我做对吗?
文件结构:
-sfind
--__init__.py
--__main__.py
--sfind.py
--test.py
【问题讨论】:
-
您运行的是
python setup.py develop还是python setup.py install?您不会对此使用命令python,它只是sfind <args>。 -
另外,这不会像
__main__一样执行sfind.py。它将执行main()函数,因为这是您指定的入口点。 -
@jordanm 如果我运行
python setup.py install我有同样的错误。我将 main 替换为 main
标签: python argparse setuptools