我觉得我在这里错过了一些观点,谷歌搜索并没有让我走得太远。
我正在使用setuptools
作为命令行脚本。一切顺利,但安装后我自己的文件不会被看到"通过自动生成的入口点脚本。想象一下以下情况:
文件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'
]
},
)
所有都正确地位于目录结构中:
在当地一切运作良好。但安装后:
sudo -H python setup.py install
并使用tep
或使用python -m tep
从其他shell调用,我收到以下错误:
ImportError: No module named 'a'
因此安装后文件a.py
在范围内不可见。有什么想法吗?
感谢。
答案 0 :(得分:1)
这是因为您没有指定a
模块的绝对路径。请注意,a
位于包tep
中。所以你需要在__main__.py
:
from tep.a import a