Я бы предположил, что на этот вопрос уже был дан ответ, но я не смог найти ветку, в которой точно описывается процесс поиска. Извините, если я ошибаюсь. я
Каков точно процесс поиска Python для нахождения модуля? Какие пути рассматриваются и в каком порядке? (например, определения sys.path
и PYTHONPATH
, site-packages
и т. д.)
Ниже я скопировал информацию из приведенной ссылки. в комментариях следующее, но у меня есть следующие вопросы:
- Что такое
installation-dependent
по умолчанию? - Что произойдет, если у вас активирована виртуальная среда от
virtualenv
или отconda
?
Когда импортируется модуль с именем spam, интерпретатор сначала ищет встроенный модуль с таким именем. Если он не найден, он ищет файл с именем spam.py в списке каталогов, заданном переменной sys.path. sys.path инициализируется из этих мест:
- Каталог, содержащий входной скрипт (или текущий каталог).
PYTHONPATH
(список имен каталогов с тем же синтаксисом, что и переменная оболочкиPATH
).- Значение по умолчанию, зависящее от установки.
После инициализации программы Python могут изменять
sys.path
. Каталог, содержащий выполняемый скрипт, помещается в начало пути поиска перед стандартным путем библиотеки. Это означает, что скрипты в этом каталоге будут загружены вместо одноименных модулей в каталоге библиотеки. Это ошибка, если замена не предназначена. Дополнительную информацию см. в разделе Стандартные модули.