在组织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
我遗漏了什么?
发布于 2012-07-23 20:44:43
通常,Python应该将包安装在setup.py
解释器可以找到的地方,这样安装后import mypackage
就可以工作了。为了便于直接从开发树运行bin
中的脚本,我通常只需在bin
目录中添加一个指向../mypackage/
的简单链接。当然,这需要一个支持符号链接…的文件系统
发布于 2019-12-04 19:49:07
我通常将我的bin路径添加到$PYTHONPATH中,这将使python也能够在bin目录中查找被请求的模块。
export PYTHONPATH=/home/username/bin:$PYTHONPATH
$ python
import module_from_bin
https://stackoverflow.com/questions/11612743
复制相似问题