python - импорт файла, который является символической ссылкой - PullRequest
7 голосов
/ 21 июля 2009

Если у меня есть файлы x.py и y.py. Y.py - ссылка (символическая или жесткая) на x.py.

Если я импортирую оба модуля в моем скрипте. Импортирует ли он один раз или предполагает, что оба файла являются разными, и импортирует их дважды.

Что именно делает?

Ответы [ 2 ]

10 голосов
/ 22 декабря 2009

Вы должны быть осторожны только в том случае, если ваш сценарий является символической ссылкой, и в этом случае первая запись в sys.path будет каталогом, содержащим цель ссылки.

9 голосов
/ 21 июля 2009

Python импортирует его дважды.

Ссылка - это концепция файловой системы. Для интерпретатора Python x.py и y.py - это два разных модуля.

$ echo print \"importing \" + __file__ > x.py
$ ln -s x.py y.py
$ python -c "import x; import y"
importing x.py
importing y.py
$ python -c "import x; import y"
importing x.pyc
importing y.pyc
$ ls -F *.py *.pyc
x.py  x.pyc  y.py@  y.pyc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...