Anaconda 가상 환경을 전환하는 Simple is Best 방법
배경
일에서 사용하고 있는 라이브러리의 일부가 Python2계 밖에 대응하고 있지 않고, 2계와 3계를 각각 인스톨 해 환경 변수 PY_PYTHON 를 재기록하는 것으로 전환을 실시하고 있었다.
그리고 이번, 3계 중에서도 개발 환경마다 모듈의 버전을 나누고 싶다는 것으로 Anaconda를 도입했다.
그러나 Anaconda에서는 지금까지의 방법을 이용할 수 없게 되기 때문에 아래의 조건을 충족하도록 새로운 방법을 생각했다.
이상의 일을 할 수 있도록 개발 환경의 설정을 변경하거나, 쉐반적인 일을 해 보거나 시행착오했지만, 예상치 못한 심플한 방법이 있었기 때문에 기사를 썼다.
가정 환경
다음 환경에서 이번 방법은 검증했다. (환경에 따라 화면이나 커맨드는 바뀌지만 다른 OS, 통합 개발 환경에도 응용 가능하다.)
이미 Anaconda, VS Code의 인스톨, 구축은 완료하고 있는 것으로 한다.
방법
Anaconda에서 만든 가상 환경의 접합을 만들고 PATH
을 통해서, junction을 재기록하는 것만으로 커멘드상의 python이 강제적으로 바꿀 수 있다. 또 개발 환경에서 python 인터프리터를 설정해야 할 경우도 그 정션을 지정해 두면 동시에 전환할 수 있다. (통합 개발 환경이 Anaconda 등 가상 환경에 대응하고 있는 경우는 적절히 설정하면 좋다)
"py2"와 "py3"이라는 가상 환경이 작성되었습니다.
C:\Users\abmolniya\Anaconda3\CurrentPy
에서 C:\Users\abmolniya\Anaconda3\envs\py2
에 대한 접합을 만듭니다.
환경 변수에 정션을 추가합니다.
명령 프롬프트에서 python을 지정하면 설정한 가상 환경의 python이 호출되었습니다.
VS Code의 설정 파일 python.pythonPath의 패스를 작성한 정션내의 python.exe를 지정하면 연동해 개발 환경의 python도 바뀐다.
전환 단순화
이전 장의 junction의 전환을 간단하게 실시하기 위해 배치 파일을 작성했으므로 어떻게 기록해 둔다. (Anaconda3를 기본 설정으로 설치한 경우 아래 코드로 잘 작동합니다.)
AnaPython.bat:init_bat
@echo off
setlocal enabledelayedexpansion
cd /d %USERPROFILE%\Anaconda3
:get_currentpy
for /f "usebackq tokens=5" %%a in (`dir ^| findstr "\<\<JUNCTION\>\>" ^| findstr "\<CurrentPy\>"`) do @set result=%%a
if not "%result%"=="" ( call :get_currentpy_name %result%)
echo 現在の仮想環境は「%result%」です。
set /P input=変更しますかy/n:
if /i not "%input%"=="y" ( goto finish_bat)
:select_currentpy
cls
echo アクティブにする仮想環境の番号を入力してください
set /A i=1
for /f "usebackq" %%a in (`dir /b envs`) do (
echo !i! ← %%a
set envs[!i!]=%%a
set /A i=i+1
)
set /P input=:
if /i "!envs[%input%]!"=="" ( goto select_currentpy)
:set_currentpy
rmdir CurrentPy
mklink /J CurrentPy envs\!envs[%input%]!
:finish_bat
timeout /T 3
goto :EOF
:***Subroutine***
:get_currentpy_name
set result=%~n1
set result=%result:~-261,-1%
위 프로그램을 C:\Users\abmolniya\Anaconda3\AnaPython.bat
에 저장하면 명령 프롬프트에서 열려는 바로 가기 (C:\Windows\System32\cmd.exe /k C:\Users\abmolniya\Anaconda3\AnaPython.bat
)를 만듭니다.
이 만든 바로 가기를 마우스 오른쪽 버튼으로 클릭하고 "작업 표시 줄에 고정"을 선택하면 언제든지 전환이 간단합니다.
후기
배경에 쓴 것 같은 상황의 사람은 그 밖에도 있다고 생각해, 인터넷으로 검색을 걸었지만, 전혀 히트하지 않았다. 유닉스의 쉐반적인 것이 가능하면 더 편하다고 생각하지만, 아무것도 생각하지 않고 이런 방법이 되었다. 뭔가 더 좋은 방법이 있다면 알려주세요.
Reference
이 문제에 관하여(Anaconda 가상 환경을 전환하는 Simple is Best 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/abmolniya/items/85704f08496e0e104108
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이전 장의 junction의 전환을 간단하게 실시하기 위해 배치 파일을 작성했으므로 어떻게 기록해 둔다. (Anaconda3를 기본 설정으로 설치한 경우 아래 코드로 잘 작동합니다.)
AnaPython.bat
:init_bat
@echo off
setlocal enabledelayedexpansion
cd /d %USERPROFILE%\Anaconda3
:get_currentpy
for /f "usebackq tokens=5" %%a in (`dir ^| findstr "\<\<JUNCTION\>\>" ^| findstr "\<CurrentPy\>"`) do @set result=%%a
if not "%result%"=="" ( call :get_currentpy_name %result%)
echo 現在の仮想環境は「%result%」です。
set /P input=変更しますかy/n:
if /i not "%input%"=="y" ( goto finish_bat)
:select_currentpy
cls
echo アクティブにする仮想環境の番号を入力してください
set /A i=1
for /f "usebackq" %%a in (`dir /b envs`) do (
echo !i! ← %%a
set envs[!i!]=%%a
set /A i=i+1
)
set /P input=:
if /i "!envs[%input%]!"=="" ( goto select_currentpy)
:set_currentpy
rmdir CurrentPy
mklink /J CurrentPy envs\!envs[%input%]!
:finish_bat
timeout /T 3
goto :EOF
:***Subroutine***
:get_currentpy_name
set result=%~n1
set result=%result:~-261,-1%
위 프로그램을
C:\Users\abmolniya\Anaconda3\AnaPython.bat
에 저장하면 명령 프롬프트에서 열려는 바로 가기 (C:\Windows\System32\cmd.exe /k C:\Users\abmolniya\Anaconda3\AnaPython.bat
)를 만듭니다.이 만든 바로 가기를 마우스 오른쪽 버튼으로 클릭하고 "작업 표시 줄에 고정"을 선택하면 언제든지 전환이 간단합니다.
후기
배경에 쓴 것 같은 상황의 사람은 그 밖에도 있다고 생각해, 인터넷으로 검색을 걸었지만, 전혀 히트하지 않았다. 유닉스의 쉐반적인 것이 가능하면 더 편하다고 생각하지만, 아무것도 생각하지 않고 이런 방법이 되었다. 뭔가 더 좋은 방법이 있다면 알려주세요.
Reference
이 문제에 관하여(Anaconda 가상 환경을 전환하는 Simple is Best 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/abmolniya/items/85704f08496e0e104108
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Anaconda 가상 환경을 전환하는 Simple is Best 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/abmolniya/items/85704f08496e0e104108텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)