2017-01-26 15 views
0

Вопрос об установке относительного импорта пути. У меня есть куча файлов (модулей), которые живут в «/ Пользователи/MyName/Desktop/programX_files/programX/общие/ такие как:Импорт питона из относительных путей

  1. /Пользователи/MyName/Desktop/programX_files/programX/общее/constants.py
  2. /Users/myname/Desktop/programX_files/programX/common/util/misc.py

Каждый из этих модулей имеет линию, чтобы импортировать другие модули внутри общего каталога/по мере необходимости. Примеры:

"constants.py" в (/Users/myname/Desktop/programX_files/programX/common/constants.py) содержит строку:

  • импорта programX.common.util.misc как util_misc

И "misc.py" в (/Users/myname/Desktop/programX_files/programX/common/util/misc.py) содержит строку:

  • импорт programX.common.constants как константы

Теперь я хочу использовать эти модули. Как правильно сообщить python для установки правильных зависимостей пути, чтобы он знал, что нужно посмотреть (/ Users/myname/Desktop/programX_files/programX/common /) и подкаталоги внутри общего?

Я попытался прилагая путь, но он не работает:

>>> import sys 
>>> sys.path.append('/Users/myname/Desktop/programX_files/programX/') 
>>> import programX.common.constants.py as constants 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: No module named programX.common.constants.py 
>>> 
>>> sys.path.append('/Users/myname/Desktop/programX_files/programX/common/') 
>>> sys.path.append('/Users/myname/Desktop/programX_files/programX/common/util') 
>>> 
>>> import programX.common.constants.py as constants 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: No module named programX.common.constants.py 
>>> 
>>> import os 
>>> os.getcwd() 
'/Users/myname' 
>>> 
>>> import Desktop.programX_files.programX.common.constants.py as constants 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: No module named Desktop.programX_files.programX.common.constants.py 
>>> 

Я предполагаю, что это может быть какой-то относительно простое решение, но я не могу понять это. Спасибо за ответы.

ответ

0

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

import sys 
# set path to folder 
sys.path.append('/Users/myname/Desktop/programX_files/') 
# now import files 
import programX.common.constants.py as constants