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
импортирует имя пакета, но не модули из пакета, в ваше пространство имен!