Как я могу изменить среду Python Anaconda глобально или навсегда - PullRequest
0 голосов
/ 23 января 2019

Как глобально изменить среду Python Anaconda в Windows? Этот вопрос НЕ задает вопрос, как я могу создать или активировать среды, которые уже отвечали на множество других вопросов, перечисленных ниже. Этот вопрос задает , как я могу глобально или постоянно переключать среды Python, чтобы среда по умолчанию становилась активированной средой, пока другая среда не будет активирована снова.

Я знаю, что могу использовать команду conda activate my_env_name в командной строке (cmd). Однако это только изменяет среду Python для этого конкретного экземпляра окна CMD, которое открыто. Это НЕ меняет среду Python глобально, поэтому любое другое приложение, которое будет выполнять код Python (например, Sublime text editor), все равно будет использовать среду Python по умолчанию.

В настоящее время в моей системе есть две среды, перечисленные ниже. Base - это среда Python 2.7 по умолчанию, которая была создана при установке Anaconda2. Я создал новую среду под названием py3 , то есть Python 3.7.

C:\Users\MyUsername>conda env list
# conda environments:
#
base                  *  C:\Users\MyUsername\Anaconda2
py3                      C:\Users\MyUsername\Anaconda2\envs\py3

У меня есть два скрипта Python, которые я хотел бы запустить в подходящей среде. Один скрипт использует Python 2, а другой - Python 3. Я использую Sublime в качестве текстового редактора, и я создаю и запускаю свои скрипты python непосредственно из текстового редактора. У меня проблема в том, что, просто изменив среду в CMD с помощью conda activate py3, текстовый редактор все еще использует базовую среду по умолчанию для запуска сценария Python .

Какова цель управления несколькими средами Python с помощью conda activate my_env_name, когда он ТОЛЬКО изменяет среду для этого конкретного экземпляра CMD / Terminal, а НЕ глобально? Я уверен, что есть много причин, но возможно, я не могу мыслить более абстрактно, так как я использовал Python в основном для написания сценариев и выполнения в текстовом редакторе.

Временное решение

Временное решение, которое я нашел, - это редактирование переменной Path для пользовательских переменных , чтобы включить мой путь к моей альтернативной среде py3. Я смог управлять переменной Path , выбрав Расширенные настройки системы >> Переменные среды >> Пользовательские переменные . Таким образом, моя переменная Path содержит путь для base и py3 . Если я хочу переключить среду по умолчанию на py3, мне нужно изменить порядок пути py3 до base path.

Хотя это временное решение работает, я всегда боюсь редактировать переменные PATH. Я думаю, что пользователям, по крайней мере, в Windows, не нужно беспокоиться о ручном изменении или обновлении переменных PATH. Зачем это нужно? Первоначально я ожидал, что когда я использую команду conda activate py3 в Power Shell или CMD, она автоматически изменит переменную Path, чтобы указать путь Python к желаемой альтернативной среде.

1 Ответ

0 голосов
/ 23 января 2019

Причина проста: некоторые приложения или проекты имеют определенные зависимости, которые могут быть несовместимы с одной средой. Например, проект требует Python 2.7. Очевидно, что вы не можете запустить это приложение в среде Python 3.

Теперь, чтобыответьте на ваш вопрос, почему conda изменяет среду только для конкретного CMD, честно, позвольте мне ответить, спросив, почему conda должна изменять среду по умолчанию каждый раз, когда вы используете команду conda activate your-env?Вы можете просто переключиться в каталог, в котором находятся ваши файлы python, и запустить python yourfilename.py

, если вы просто хотите изменить интерпретатор по умолчанию в sublime, вы можете перейти по этой ссылке здесь .

...