我是一名 Ruby 程序员,正在开发我的第一个 Python 包(我们称之为foo)。它的主要目的是作为一个命令行工具。我指定它应该作为可执行文件安装在setup.py
使用中:
setup(
entry_points={
'console_scripts': [
'foo = foo.cli:main'
]
}
)
foo/cli.py
包含:
import foo
def main():
# program logic here
if __name__ == '__main__':
main()
cli.py
需要引用foo.__version__
中定义的内容foo/__init__.py
,但是当我在python foo/cli.py
本地运行以测试 CLI 时,import foo
会引发ImportError: No module named foo
. 运行这样的单个文件时,如何让 Python 在 foo 包的上下文中查看 cli.py?我的方法完全错误吗?您通常如何在本地测试使用 setuptools 的入口点定义的可执行文件?