我有一个模块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
发布于 2018-11-09 07:18:06
您不需要setuptools将模块称为python sfind
。Setuptools将允许您只通过sfind
调用。要使用python sfind
调用它,您必须使您的sfind
成为一个模块,您可以通过在目录中创建一个包含__init__.py
、__main__.py
和sfind.py
的python目录sfind
来实现这一点。然后,您可以只使用python sfind
调用。如果您只想用sfind
调用它,可以使用安装工具,但建议您提供可调用的函数(例如sfind=sfind.sfind:main
),而不是以模块本身(__main__
)作为entry_points
。然后,您可以执行python setup.py install
或python setup.py sdist
,然后执行pip install
。
https://stackoverflow.com/questions/53227755
复制相似问题