Какова логика передачи `sys.path` в Python при импорте файла или пакета?Python

Программы на Python
Ответить
Anonymous
 Какова логика передачи `sys.path` в Python при импорте файла или пакета?

Сообщение Anonymous »

В файле __init__.py пакета я импортировал несколько файлов, используя сторонний модуль, по другому пути. Чтобы сообщить Python о пути к стороннему модулю, я добавляю путь к sys.path, вот так

Код: Выделить всё

# __init__.py
import sys
sys.path.append("path of the third party module")

from .file_in_the_package import ... # the file rely on the third party module
Все идет нормально, пока я не переместил sys.path.append в отдельный файл в пакете, вот так

Код: Выделить всё

# separated file imp.py
import sys
sys.path.append("path of the third party module")

Код: Выделить всё

# changed __init__.py
import imp
from .file_in_the_package import ... # the file rely on the third party module
в котором добавленный «путь к стороннему модулю» не может быть найден ни в __init__.py, ни в file_in_the_package.py.Однако с импортом .imp * все идет нормально.
Теперь мне просто интересно, в какой ситуации изменился sys.path< /code> будет передан при импорте файл/пакет с sys.path изменился?

Подробнее здесь: https://stackoverflow.com/questions/792 ... ile-or-pac
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»