【发布时间】:2020-05-19 02:55:10
【问题描述】:
在组织python项目时,这种结构似乎是一种标准的做法:
myproject\
bin\
myscript
mypackage\
__init__.py
core.py
tests\
__init__.py
mypackage_tests.py
setup.py
我的问题是,如何导入我的core.py 以便在myscript 中使用它?
__init__.py 两个文件都是空的。
myscript的内容:
#!/usr/bin/env python
from mypackage import core
if __name__ == '__main__':
core.main()
core.py的内容
def main():
print 'hello'
当我从 myproject 目录中运行 myscript 时,我收到以下错误:
Traceback (most recent call last):
File "bin/myscript", line 2, in <module>
from mypackage import core
ImportError: No module named mypackage
我错过了什么?
【问题讨论】:
-
您的
sys.path值(由PYTHONPATH环境变量修改或在运行时由Python 代码修改)决定import将在何处搜索模块。 -
考虑在
setup.py中使用entry_points["console_scripts"]'。 -
setup.py的内容是什么?它在 myproject 目录中吗? -
为什么不安装你的包 (
python setup.py etc)在运行你的脚本之前? -
我正处于开发阶段,所以我宁愿不要每次更改都安装它,看看它是否有效。
标签: python