Python не проверяет, является ли ваш файл символической ссылкой! Вероятно, ваша проблема заключается в переименовании модулей или их отсутствии на вашем пути поиска!
Если ModuleA становится ModuleB и вы пытаетесь импортировать ModuleA, он не может его найти, потому что он не существует.
Если вы переместили ModuleA в другой каталог и создаете символическую ссылку с другим именем, которое представляет новый каталог, этот новый каталог должен быть общим родительским каталогом вашего скрипта и вашего модуля, или каталог символических ссылок должен находиться в пути поиска.
Кстати, неясно, имеете ли вы в виду модуль или пакет. Каталог, содержащий файл __init__.py
, становится пакетом всех файлов с расширением .py
(= modules), находящихся в нем.
Пример
DIRA
+ __init__.py <-- makes DIRA to package DIRA
+ moduleA.py <-- module DIRA.moduleA
Перемещение и символическая ссылка
/otherplace/DIRA <-+
| points to DIRA
mylibraries/SYMA --+ symbolic link
Если имя SYMA совпадает с именем DIRA и ваш сценарий находится в каталоге SYMA, он должен работать нормально. Если нет, то вам необходимо:
import sys
sys.path.append('/path/to/your/package/root')
Если вы хотите импортировать модуль из вашего пакета SYMA, вы должны:
import SYMA.ModuleA
Просто:
import SYMA
будет импортировать имя пакета, но не модули в пакете, в ваше пространство имен!
person
Don Question
schedule
05.01.2012