python setuptools 入口点脚本找不到模块
python setuptools entry point script can't find module
我觉得我在这里遗漏了一些要点,谷歌搜索并没有让我走得太远。
我正在使用 setuptools
作为命令行脚本。一切顺利,但安装后我自己的文件不是 "seen" 由入口点的自动生成的脚本。想象一下以下情况:
文件 a.py
包含:
a = 12
文件 __main__.py
包含:
from a import a
def main():
print(a)
if __name__ == '__main__':
main()
文件 __init__.py
为空。文件 setup.py
包含:
from setuptools import setup, find_packages
setup(
name='tep',
packages=find_packages(),
version='0.0.1',
entry_points={
'console_scripts': [
'tep = tep.__main__:main'
]
},
)
所有都正确位于目录结构中:
- test_entry_point
- 泰普
- __init__.py
- __main__.py
- a.py
- setup.py
本地一切正常。但是安装后:
sudo -H python setup.py install
并通过使用 tep
或使用 python -m tep
从不同的 shell 调用,我收到以下错误:
ImportError: No module named 'a'
因此文件 a.py
安装后在范围内不可见。有什么想法吗?
谢谢。
发生这种情况是因为您没有指定 a
模块的绝对路径。请记住,a
在包 tep
中。所以你需要在 __main__.py
:
中这样导入
from tep.a import a
我觉得我在这里遗漏了一些要点,谷歌搜索并没有让我走得太远。
我正在使用 setuptools
作为命令行脚本。一切顺利,但安装后我自己的文件不是 "seen" 由入口点的自动生成的脚本。想象一下以下情况:
文件 a.py
包含:
a = 12
文件 __main__.py
包含:
from a import a
def main():
print(a)
if __name__ == '__main__':
main()
文件 __init__.py
为空。文件 setup.py
包含:
from setuptools import setup, find_packages
setup(
name='tep',
packages=find_packages(),
version='0.0.1',
entry_points={
'console_scripts': [
'tep = tep.__main__:main'
]
},
)
所有都正确位于目录结构中:
- test_entry_point
- 泰普
- __init__.py
- __main__.py
- a.py
- setup.py
- 泰普
本地一切正常。但是安装后:
sudo -H python setup.py install
并通过使用 tep
或使用 python -m tep
从不同的 shell 调用,我收到以下错误:
ImportError: No module named 'a'
因此文件 a.py
安装后在范围内不可见。有什么想法吗?
谢谢。
发生这种情况是因为您没有指定 a
模块的绝对路径。请记住,a
在包 tep
中。所以你需要在 __main__.py
:
from tep.a import a