【windows+anaconda】 커멘드 프롬프트 기동시에, 자동으로 환경을 activate한다
배경
windows+anaconda+ 명령 프롬프트에서 python을 사용하고 있습니다. 한 환경 내에서 작업할 때 명령 프롬프트를 열고 일일이 activate hogehoge
등으로 하는 것은 매우 귀찮습니다. 그래서 명령 프롬프트를 시작할 때 자동으로 환경에 들어가는 방법을 조사했습니다. IDE를 사용하면 괜찮습니다.
환경
windows10 64bit
아나콘다 1.6.0
결론
cmdrc 쓰기
이유
공식 환경 운영 참조 이나 stackoverflow 질문 를 보는 한, (ana)conda 측에서는, 환경의 자동 액티베이트에 대응하고 있지 않다고 생각됩니다.
그래서 명령 프롬프트를 시작할 때 자동으로 실행되는 파일을 만들고 그 안에서 환경을 활성화하는 방법이 가장 간단하다고 생각했습니다.
방법
레지스트리를 편집합니다. 작업은 자기 책임으로 실시하십시오.
적당한 폴더(여기서는 C:\Users\USER\
라고 합니다)에 cmdrc.bat
라는 파일을 만들어, 이하의 내용을 써 넣습니다.
cmdrc.bat@echo off
cd /d %~dp0
if not exist "_TMP" (
type nul > _TMP
activate python_env
del "_TMP"
)
python_env
는 각자의 환경에 옮겨놓아 주세요.
저장하면 레지스트리 편집기를 열고 HKEY_CURRENT_USER\SOFTWARE\Microsoft\Command Processor
안에 AutoRun
라는 이름으로 문자열 값을 만듭니다. 값의 데이터는 cmdrc.bat
에 대한 경로입니다.
이를 저장한 후, 명령 프롬프트를 열면, 환경이 활성화된 상태로 기동할 것입니다.
cmdrc.bat의 해설
@echo off
: 명령의 실행을 화면에 표시하지 않고 실행하도록 설정하는 명령입니다. 그렇지 않으면 이 파일에서 실행한 모든 명령이 화면에 표시됩니다.
cd /d %~dp0
: 현재 디렉토리를 배치 파일이 있는 위치로 이동시키는 명령입니다. 명령 프롬프트를 시작한 직후에는 C:\WINDOWS\System32
에 현재 디렉터리가 설정되어 있으므로 그대로라고 나중에 설명하는 _TMP
파일을 만들 수 없습니다.
if not exist "_TMP" (
type nul > _TMP
activate python_env
del "_TMP"
)
단순히 activate python_env
로 하는 것이 아니라, _TMP
가 존재하는지 어떤지로 처리를 바꾸고 있습니다 (존재하는 경우는 아무것도 하지 않는다).
경우 나누기를 쓰지 않고 activate python_env
라고만 했는데, 컴퓨터가 대량으로 메모리를 소비해, 커멘드 프롬프트가 멈췄습니다. 아마도 activate를 실행할 때 뒤에서 새롭게 배치 파일을 기동하고 있어, 배치 파일 기동→activate를 실행→activate가 배치 파일 기동→그 배치 파일이 activate를 실행…과 무한하게 배치 파일이 실행되고 버리는 것이 아닐까 생각합니다.
최초의 실행으로 _TMP
라고 하는 파일을 작성해, 그 이후의 배치 파일에서는 activate
를 실행시키지 않게 하는 것으로, 무한 루프를 막고 있습니다.
참고 사이트
htp://C4세. 하테나 bぉg. 소 m/엔try/2012/10/19/230718
h tp // w w. 안녕하세요. 이 m/do s/바 tch-g 라마 r/이 f/이 f. HTML
htp // d. 하테나. 네. jp/나카무라 001/20090203/1233652705
htps //w w. k-타나카. 네 t/cmd/에서 l. php
ぃ tp // 이 m/i s_보오 ks/있어 ms/44d4c이다 4에11에194b8345
h tp // 키요타카쿠보. 하테나 bぉg. 코m/엔트리/20090214/1234622897
Reference
이 문제에 관하여(【windows+anaconda】 커멘드 프롬프트 기동시에, 자동으로 환경을 activate한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nbit/items/cf685331e8d9984d3216
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
windows10 64bit
아나콘다 1.6.0
결론
cmdrc 쓰기
이유
공식 환경 운영 참조 이나 stackoverflow 질문 를 보는 한, (ana)conda 측에서는, 환경의 자동 액티베이트에 대응하고 있지 않다고 생각됩니다.
그래서 명령 프롬프트를 시작할 때 자동으로 실행되는 파일을 만들고 그 안에서 환경을 활성화하는 방법이 가장 간단하다고 생각했습니다.
방법
레지스트리를 편집합니다. 작업은 자기 책임으로 실시하십시오.
적당한 폴더(여기서는 C:\Users\USER\
라고 합니다)에 cmdrc.bat
라는 파일을 만들어, 이하의 내용을 써 넣습니다.
cmdrc.bat@echo off
cd /d %~dp0
if not exist "_TMP" (
type nul > _TMP
activate python_env
del "_TMP"
)
python_env
는 각자의 환경에 옮겨놓아 주세요.
저장하면 레지스트리 편집기를 열고 HKEY_CURRENT_USER\SOFTWARE\Microsoft\Command Processor
안에 AutoRun
라는 이름으로 문자열 값을 만듭니다. 값의 데이터는 cmdrc.bat
에 대한 경로입니다.
이를 저장한 후, 명령 프롬프트를 열면, 환경이 활성화된 상태로 기동할 것입니다.
cmdrc.bat의 해설
@echo off
: 명령의 실행을 화면에 표시하지 않고 실행하도록 설정하는 명령입니다. 그렇지 않으면 이 파일에서 실행한 모든 명령이 화면에 표시됩니다.
cd /d %~dp0
: 현재 디렉토리를 배치 파일이 있는 위치로 이동시키는 명령입니다. 명령 프롬프트를 시작한 직후에는 C:\WINDOWS\System32
에 현재 디렉터리가 설정되어 있으므로 그대로라고 나중에 설명하는 _TMP
파일을 만들 수 없습니다.
if not exist "_TMP" (
type nul > _TMP
activate python_env
del "_TMP"
)
단순히 activate python_env
로 하는 것이 아니라, _TMP
가 존재하는지 어떤지로 처리를 바꾸고 있습니다 (존재하는 경우는 아무것도 하지 않는다).
경우 나누기를 쓰지 않고 activate python_env
라고만 했는데, 컴퓨터가 대량으로 메모리를 소비해, 커멘드 프롬프트가 멈췄습니다. 아마도 activate를 실행할 때 뒤에서 새롭게 배치 파일을 기동하고 있어, 배치 파일 기동→activate를 실행→activate가 배치 파일 기동→그 배치 파일이 activate를 실행…과 무한하게 배치 파일이 실행되고 버리는 것이 아닐까 생각합니다.
최초의 실행으로 _TMP
라고 하는 파일을 작성해, 그 이후의 배치 파일에서는 activate
를 실행시키지 않게 하는 것으로, 무한 루프를 막고 있습니다.
참고 사이트
htp://C4세. 하테나 bぉg. 소 m/엔try/2012/10/19/230718
h tp // w w. 안녕하세요. 이 m/do s/바 tch-g 라마 r/이 f/이 f. HTML
htp // d. 하테나. 네. jp/나카무라 001/20090203/1233652705
htps //w w. k-타나카. 네 t/cmd/에서 l. php
ぃ tp // 이 m/i s_보오 ks/있어 ms/44d4c이다 4에11에194b8345
h tp // 키요타카쿠보. 하테나 bぉg. 코m/엔트리/20090214/1234622897
Reference
이 문제에 관하여(【windows+anaconda】 커멘드 프롬프트 기동시에, 자동으로 환경을 activate한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nbit/items/cf685331e8d9984d3216
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
공식 환경 운영 참조 이나 stackoverflow 질문 를 보는 한, (ana)conda 측에서는, 환경의 자동 액티베이트에 대응하고 있지 않다고 생각됩니다.
그래서 명령 프롬프트를 시작할 때 자동으로 실행되는 파일을 만들고 그 안에서 환경을 활성화하는 방법이 가장 간단하다고 생각했습니다.
방법
레지스트리를 편집합니다. 작업은 자기 책임으로 실시하십시오.
적당한 폴더(여기서는 C:\Users\USER\
라고 합니다)에 cmdrc.bat
라는 파일을 만들어, 이하의 내용을 써 넣습니다.
cmdrc.bat@echo off
cd /d %~dp0
if not exist "_TMP" (
type nul > _TMP
activate python_env
del "_TMP"
)
python_env
는 각자의 환경에 옮겨놓아 주세요.
저장하면 레지스트리 편집기를 열고 HKEY_CURRENT_USER\SOFTWARE\Microsoft\Command Processor
안에 AutoRun
라는 이름으로 문자열 값을 만듭니다. 값의 데이터는 cmdrc.bat
에 대한 경로입니다.
이를 저장한 후, 명령 프롬프트를 열면, 환경이 활성화된 상태로 기동할 것입니다.
cmdrc.bat의 해설
@echo off
: 명령의 실행을 화면에 표시하지 않고 실행하도록 설정하는 명령입니다. 그렇지 않으면 이 파일에서 실행한 모든 명령이 화면에 표시됩니다.
cd /d %~dp0
: 현재 디렉토리를 배치 파일이 있는 위치로 이동시키는 명령입니다. 명령 프롬프트를 시작한 직후에는 C:\WINDOWS\System32
에 현재 디렉터리가 설정되어 있으므로 그대로라고 나중에 설명하는 _TMP
파일을 만들 수 없습니다.
if not exist "_TMP" (
type nul > _TMP
activate python_env
del "_TMP"
)
단순히 activate python_env
로 하는 것이 아니라, _TMP
가 존재하는지 어떤지로 처리를 바꾸고 있습니다 (존재하는 경우는 아무것도 하지 않는다).
경우 나누기를 쓰지 않고 activate python_env
라고만 했는데, 컴퓨터가 대량으로 메모리를 소비해, 커멘드 프롬프트가 멈췄습니다. 아마도 activate를 실행할 때 뒤에서 새롭게 배치 파일을 기동하고 있어, 배치 파일 기동→activate를 실행→activate가 배치 파일 기동→그 배치 파일이 activate를 실행…과 무한하게 배치 파일이 실행되고 버리는 것이 아닐까 생각합니다.
최초의 실행으로 _TMP
라고 하는 파일을 작성해, 그 이후의 배치 파일에서는 activate
를 실행시키지 않게 하는 것으로, 무한 루프를 막고 있습니다.
참고 사이트
htp://C4세. 하테나 bぉg. 소 m/엔try/2012/10/19/230718
h tp // w w. 안녕하세요. 이 m/do s/바 tch-g 라마 r/이 f/이 f. HTML
htp // d. 하테나. 네. jp/나카무라 001/20090203/1233652705
htps //w w. k-타나카. 네 t/cmd/에서 l. php
ぃ tp // 이 m/i s_보오 ks/있어 ms/44d4c이다 4에11에194b8345
h tp // 키요타카쿠보. 하테나 bぉg. 코m/엔트리/20090214/1234622897
Reference
이 문제에 관하여(【windows+anaconda】 커멘드 프롬프트 기동시에, 자동으로 환경을 activate한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nbit/items/cf685331e8d9984d3216
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
@echo off
cd /d %~dp0
if not exist "_TMP" (
type nul > _TMP
activate python_env
del "_TMP"
)
@echo off
: 명령의 실행을 화면에 표시하지 않고 실행하도록 설정하는 명령입니다. 그렇지 않으면 이 파일에서 실행한 모든 명령이 화면에 표시됩니다.cd /d %~dp0
: 현재 디렉토리를 배치 파일이 있는 위치로 이동시키는 명령입니다. 명령 프롬프트를 시작한 직후에는 C:\WINDOWS\System32
에 현재 디렉터리가 설정되어 있으므로 그대로라고 나중에 설명하는 _TMP
파일을 만들 수 없습니다.if not exist "_TMP" (
type nul > _TMP
activate python_env
del "_TMP"
)
단순히
activate python_env
로 하는 것이 아니라, _TMP
가 존재하는지 어떤지로 처리를 바꾸고 있습니다 (존재하는 경우는 아무것도 하지 않는다).경우 나누기를 쓰지 않고
activate python_env
라고만 했는데, 컴퓨터가 대량으로 메모리를 소비해, 커멘드 프롬프트가 멈췄습니다. 아마도 activate를 실행할 때 뒤에서 새롭게 배치 파일을 기동하고 있어, 배치 파일 기동→activate를 실행→activate가 배치 파일 기동→그 배치 파일이 activate를 실행…과 무한하게 배치 파일이 실행되고 버리는 것이 아닐까 생각합니다.최초의 실행으로
_TMP
라고 하는 파일을 작성해, 그 이후의 배치 파일에서는 activate
를 실행시키지 않게 하는 것으로, 무한 루프를 막고 있습니다.참고 사이트
htp://C4세. 하테나 bぉg. 소 m/엔try/2012/10/19/230718
h tp // w w. 안녕하세요. 이 m/do s/바 tch-g 라마 r/이 f/이 f. HTML
htp // d. 하테나. 네. jp/나카무라 001/20090203/1233652705
htps //w w. k-타나카. 네 t/cmd/에서 l. php
ぃ tp // 이 m/i s_보오 ks/있어 ms/44d4c이다 4에11에194b8345
h tp // 키요타카쿠보. 하테나 bぉg. 코m/엔트리/20090214/1234622897
Reference
이 문제에 관하여(【windows+anaconda】 커멘드 프롬프트 기동시에, 자동으로 환경을 activate한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nbit/items/cf685331e8d9984d3216
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(【windows+anaconda】 커멘드 프롬프트 기동시에, 자동으로 환경을 activate한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nbit/items/cf685331e8d9984d3216텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)