PyCharm을 설정하고 virtualenv (virtual env 명령을 통해 또는 PyCharm에서 직접)를 생성하고 해당 환경을 통역사로 활성화했습니다. 모든 것이 잘 작동합니다.
그러나 “도구, 터미널 열기”를 사용하여 터미널을 열면 제공된 쉘 프롬프트가 가상 환경을 사용 하지 않습니다 . source ~/envs/someenv/bin/activate
활성화 하려면 해당 터미널 내에서 여전히 사용해야 합니다.
또 다른 방법은 셸에서 환경을 활성화하고 해당 환경에서 PyCharm을 실행하는 것입니다. 이것은 “실행 가능”하지만 매우 추하고 PyCharm에서 환경이나 프로젝트를 전환하면 큰 문제가 있음을 의미합니다. 이제 완전히 잘못된 환경을 사용하고 있습니다.
“Tools, Open Terminal”이 가상 환경을 자동으로 활성화하도록하는 다른 훨씬 더 쉬운 방법이 있습니까?
답변
편집하다:
https://www.jetbrains.com/pycharm/whatsnew/#v2016-3-venv-in-terminal 에 따르면 PyCharm 2016.3 (2016 년 11 월 출시)은 즉시 사용할 수있는 터미널에 대한 virutalenv 지원을 제공합니다.
Auto virtualenv는 bash, zsh, fish 및 Windows cmd에 대해 지원됩니다. 설정 (환경 설정) |에서 쉘 환경 설정을 사용자 정의 할 수 있습니다. 도구 | 단말기.
이전 방법 :
.pycharmrc
다음 내용으로 홈 폴더에 파일 을 만듭니다.
source ~/.bashrc
source ~/pycharmvenv/bin/activate
virtualenv 경로를 마지막 매개 변수로 사용합니다.
그런 다음 셸 환경 설정-> 프로젝트 설정-> 셸 경로를
/bin/bash --rcfile ~/.pycharmrc
답변
최신 정보:
설정 (기본 설정)의 기본 설정 | 도구 | 터미널은 글로벌입니다.
각 프로젝트에 venv를 사용하는 경우 현재 경로 변수와 기본 venv 이름을 사용해야합니다.
"cmd.exe" /k ""%CD%\venv\Scripts\activate""
Windows 사용자의 경우 : 가상 환경에서 PyCharm을 사용할 때 /K
매개 변수를 사용 cmd.exe
하여 가상 환경을 자동으로 설정할 수 있습니다 .
PyCharm 3 또는 4 : Settings
, Terminal
, Default shell
및 추가 /K <path-to-your-activate.bat>
.
PyCharm 5 : Settings
, Tools
, Terminal
, 그리고 추가 /K <path-to-your-activate.bat>
로 Shell path
.
PyCharm 2016.1 또는 2016.2는 : Settings
, Tools
, Terminal
, 그리고 추가 ""/K <path-to-your-activate.bat>""
로 Shell path
(따옴표 마음) 및 추가 할 수 있습니다. 또한 cmd.exe 주위에 따옴표를 추가하면 다음과 같은 결과가 나타납니다.
"cmd.exe" /k ""C:\mypath\my-venv\Scripts\activate.bat""
답변
Windows 사용자의 경우 Windows에서 PyCharm 및 가상 환경을 사용하는 경우 cmd.exe에 / k 매개 변수를 사용하여 가상 환경을 자동으로 설정할 수 있습니다.
설정, 터미널, 기본 셸로 이동하여 /K <path-to-your-activate.bat>
.
나는 이전 응답에 대해 언급 할 평판이 없으므로이 수정 된 버전을 게시합니다. 이것은 정말로 많은 시간을 절약합니다.
최신 정보:
참고 : Pycharm은 이제 가상 환경을 직접 지원하며 저에게 잘 작동하는 것 같습니다. 따라서 더 이상 해결 방법이 필요하지 않습니다.
답변
Peter의 답변과 실험을 바탕으로 다음을 해결하는 좋은 “일반 솔루션”을 찾았습니다.
- 로그인 쉘의 동작을 복원합니다. PyCharm은 일반적으로 로그인 셸을 실행하지만 –rcfile은이 문제를 중지했습니다. 스크립트는 여전히 –rcfile을 사용하지만 로그인 쉘의 INVOCATION 동작을 에뮬레이트하려고합니다.
- 각 환경에 대해 rcfile을 생성 할 필요가 없습니다.
- 환경을 변경하는 경우 프로젝트 설정을 업데이트 할 필요가 없습니다.
이 스크립트를 bin 디렉토리 어딘가에 놓습니다. 예 : ~ / bin / pycharmactivate
if [ -r "/etc/profile" ] ; then . /etc/profile ; fi
if [ -r "~/.bash_profile" ] ; then
. ~/.bash_profile
elif [ -r "~/.bash_login" ] ; then
. ~/.bash_login
elif [ -r "~/.profile" ] ; then
. ~/.profile
fi
ACTIVATERC=`cat .idea/workspace.xml | perl -n -e 'print "\$1/bin/activate" if m:option name="SDK_HOME" value="\\\$USER_HOME\\\$(.*)/bin/python":'`
if [ -n "$ACTIVATERC" ] ; then . "$HOME/$ACTIVATERC" ; else echo "Could not find virtualenv from PyCharm" ; fi
그런 다음 PyCharm의 셸 경로를 다음과 같이 설정합니다.
/bin/bash --rcfile ~/bin/pycharmactivate
답변
이제 PyCharm 4에는 IDE에 통합 된 virtualenv가 있습니다. 프로젝트 인터프리터를 선택할 때 virtualenv를 생성, 추가 또는 선택할 수 있습니다. 구성된 프로젝트 인터프리터에서 실행되는 “Python 콘솔”을 추가했습니다.
답변
감사합니다 Chris, 귀하의 스크립트는 일부 프로젝트에서는 작동했지만 내 컴퓨터에서는 모두 작동하지 않았습니다. 여기 내가 작성한 스크립트가 있으며 누구나 유용하다고 생각합니다.
#Stored in ~/.pycharmrc
ACTIVATERC=$(python -c 'import re
import os
from glob import glob
try:
#sets Current Working Directory to _the_projects .idea folder
os.chdir(os.getcwd()+"/.idea")
#gets every file in the cwd and sets _the_projects iml file
for file in glob("*"):
if re.match("(.*).iml", file):
project_iml_file = file
#gets _the_virtual_env for _the_project
for line in open(project_iml_file):
env_name = re.findall("~/(.*)\" jdkType", line.strip())
# created or changed a virtual_env after project creation? this will be true
if env_name:
print env_name[0] + "/bin/activate"
break
inherited = re.findall("type=\"inheritedJdk\"", line.strip())
# set a virtual_env during project creation? this will be true
if inherited:
break
# find _the_virtual_env in misc.xml
if inherited:
for line in open("misc.xml").readlines():
env_at_project_creation = re.findall("\~/(.*)\" project-jdk", line.strip())
if env_at_project_creation:
print env_at_project_creation[0] + "/bin/activate"
break
finally:
pass
')
if [ "$ACTIVATERC" ] ; then . "$HOME/$ACTIVATERC" ; fi