2014-09-06 16 views
0

我做了两个Python包,如下所示:如何从相邻包加载python模块?

theMainFolder/ 
├── package_a/ 
│   ├── __init__.py 
│   └── some_a_file.py 
├──package_b/ 
│ ├── __init__.py 
│ └── some_b_file.py 

我现在想some_a_file导入some_b_file。我试着用这样做:

from package_a import some_a_file 

但这不起作用。有人知道我能做到吗?所有提示都欢迎。

回答

1

相对路径添加到theMainFolder的位置,然后做一个进口

import sys            
from os.path import dirname, abspath      
sys.path.insert(0, dirname(dirname(abspath(__file__)))) 
from package_a import some_a_file 
1

当你运行该程序的theMainFolder的路径添加到模块搜索路径:

PYTHONPATH=/path/to/theMainFolder python main_program.py 
+0

你的意思是改变这在例如.profile?但那不会真的使它便携吗?有没有其他方式做到这一点? – kramer65 2014-09-06 08:36:10

+0

@ kramer65,不,我的意思是当你运行程序。 – falsetru 2014-09-06 08:36:44

+0

@ kramer65,'import os,import sys; sys.path.insert(0,os.path.dirname(os.path.dirname(__ file __)))'在'some_b_file.py'开头。 – falsetru 2014-09-06 08:55:07

相关问题