Когда вы вводите python
в оболочку (в терминале), он ищет этот файл в каталогах, которые хранятся в переменной среды с именем PATH
.Вы можете увидеть значение этой переменной, набрав echo $PATH
.
Когда активируется среда conda (включая базовую среду), каталог, в котором хранятся исполняемые файлы, установленные в этой среде, добавляется в PATH
переменная.Поэтому, когда ваша базовая среда активирована, вы увидите что-то вроде
/path/to/anaconda/bin:/usr/local/bin:...
Однако, когда вы активируете среду, conda оставляет базовую среду на PATH
и просто добавляет новую среду кfront, как
/path/to/anaconda/envs/mdpenv/bin:/path/to/anaconda/bin:/usr/local/bin:...
Теперь, когда вы создаете пустую среду, conda вообще не устанавливает пакетов (отсюда и пустой вывод conda list
).Однако python
из базовой среды по-прежнему присутствует в вашем PATH
, поэтому, когда вы наберете python
, оболочка обнаружит, что Python установлен в базовой среде, и этот Python загрузит все пакеты, установленные в базовой.
Это поведение легко проверить, проверив исполняемый файл, который использует Python, и путь Python для импорта пакетов:
>>> import sys
>>> print(sys.executable)
/path/to/anaconda/bin/python
>>> print(sys.path)
['', '/path/to/anaconda/lib/python37.zip', ...]
Если вы установите python
в новую среду,вы обнаружите, что не можете импортировать какие-либо пакеты (поскольку в этой среде не установлено ничего, кроме Python)