мне очень нравится этот способ
вот пакетный скрипт:
@setlocal enableextensions enabledelayedexpansion
@echo off
set str1=%PYCURRENTPATHS%
if not "x%str1:python2=%" == "x%str1%" (
set PYCURRENTPATHS=%PY3PATHS%
) else (
set PYCURRENTPATHS=%PY2PATHS%
)
setx PYCURRENTPATHS %PYCURRENTPATHS%
set PATH=%PATH%
endlocal
нам понадобятся 3 переменные: (используйте «set», чтобы установить текущий терминал, используйте «setx», чтобы установить постоянную переменную)
set PY2PATHS=D:\ProgramData\Anaconda3\env\python2;D:\ProgramData\Anaconda3\env\python2\Scripts
set PY3PATHS=D:\ProgramData\Anaconda3;D:\ProgramData\Anaconda3\Scripts
setx PY2PATHS %PY2PATHS%
setx PY3PATHS %PY3PATHS%
setx PYCURRENTPATHS %PY2PATHS%
И добавьте «%PYCURRENTPATHS%» к вашему пути через графический интерфейс:
В этом примере используется установка anaconda и python2 из этого примера: conda create -n python2 python=2.7 анаконда
Поэтому для ультра безболезненного Windows python я не могу рекомендовать следующее решение. Пожалуйста, попробуйте, я думаю, вам понравится.
1) используйте Anaconda (начните с python 3 для этого примера)... долгое время я сопротивлялся и мне больше везло с ручной установкой/управлением python, но из-за проблем с сетью я был вынужден использовать Anaconda (не хотите разрешить адрес пипа в сети :()
2) установите python2 из приглашения anaconda: conda create -n python2 python=2.7 анаконда
3) создайте скрипт выше, чтобы сделать ваши установки python доступными для командной строки (например, добавить в путь)
Вы можете добавить больше виртуальных сред Python, установить их в командной строке или улучшить этот скрипт (например, PY2Tensor, Py3Scikit и т. д.) или просто управлять ими через conda :)
Anaconda использует предварительно скомпилированные пакеты. Никаких несоответствий пакетов, нестабильных выпусков, устаревших проблем или сломанных зависимостей.
Я по-прежнему предпочитаю Linux для разработки, но если вам приходится использовать Windows и Python, стало лучше.
Примечание: установка PATH=%PATH% приводит к переоценке "PATH" + "%PYCURRENTPATHS%" в текущем сеансе, новый сеанс отразит изменение без этой строки.
person
James Nelson
schedule
29.01.2019