Python не проверява дали вашият файл е символна връзка или не! Вашият проблем вероятно се крие в преименуването на модулите или липсата им в пътя ви за търсене!
Ако ModuleA стане ModuleB и се опитате да импортирате ModuleA, той не може да го намери, защото не съществува.
Ако сте преместили ModuleA в друга директория и генерирате символна връзка с друго име, което представлява нова директория, тази нова директория трябва да бъде общата родителска директория на вашия скрипт и вашия модул или директорията на символната връзка трябва да е в пътя за търсене.
BTW не е ясно дали имаш предвид модул или пакет. Директорията, съдържаща файла __init__.py
, се превръща в пакет от всички файлове с разширение .py
(= модули), намиращи се там.
Пример
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