我已经设置了PyCharm,创建了我的virtualenv (通过虚拟环境命令,或者直接在PyCharm中),并将该环境激活为我的解释器。一切都运行得很好。
但是,如果我使用"Tools“,”open Terminal“打开一个终端,提供的shell提示符不是使用虚拟环境;我仍然必须在该终端中使用source ~/envs/someenv/bin/activate
来激活它。
另一种方法是在shell中激活环境,然后从该环境运行PyCharm。这是“可行的”,但相当难看,这意味着如果我从PyCharm切换环境或项目,我会遇到重大问题:我现在使用的是完全错误的环境。
有没有其他更简单的方法让"Tools,Open Terminal“自动激活虚拟环境?
发布于 2015-04-30 02:19:19
PyCharm 4现在集成了virtualenvs。在选择项目解释器时,您可以创建、添加或选择一个virtualenv。他们添加了一个在配置好的项目解释器中运行的"Python控制台“。
发布于 2017-07-26 11:10:17
我已经看过上面所有的答案,但没有一个对我来说足够优雅。在PyCharm 2017.1.3 (在我的电脑中)中,最简单的方法是打开Settings->Tools->Terminal
并选中Shell integration
和Activate virtualenv
选项。
发布于 2014-06-07 08:44:35
谢谢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
https://stackoverflow.com/questions/22288569
复制相似问题