2013-12-06 3 views
0

У меня есть структура папок следующим образом:импорт вложенного в питоне

/foo/trunk/mss/cloud 

и

/foo/trunk/mss/model 

мой файл питон находится в подкаталоге с именем модели test.py Я хочу, чтобы импортировать все модули, расположенные в вложенная облако мой код в test.py является:

import mss.cloud as cloud 

, но я получил сообщение об ошибке:

ImportError: No module named mss.clould

Должен ли я вносить какие-либо изменения в PYTHONPATH или что-нибудь еще? любая помощь действительно оценена.

ответ

0

Способ достижения цели является добавление относительного пути к sys.path, например:

$ find . 
. 
./cloud 
./cloud/foo.py 
./model 
./model/t.py 


$ cat cloud/foo.py 
print 'greetings from', __name__ 

$ cat model/t.py 
import sys, os 
sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'cloud'))  
import foo 

$ python model/t.py 
greetings from foo 
+0

есть ли способ, что я просто изменить PYTHONPATH? – Amir

+0

sure: 'export PYTHONPATH = $ (cd ../cloud && pwd): $ PYTHONPATH' – piokuc

Смежные вопросы