Chr*_*don 99 python django shell virtualenv pycharm
我已经设置了PyCharm,创建了我的virtualenv(通过虚拟env命令,或者直接在PyCharm中),并将该环境激活为我的Interpreter.一切都很好.
但是,如果我使用"工具,打开终端"打开终端,提供的shell提示符不使用虚拟环境; 我仍然必须source ~/envs/someenv/bin/activate在该终端内使用它来激活它.
另一种方法是激活shell中的环境,并从该环境运行PyCharm.这是"可行的",但非常难看,如果我从PyCharm切换环境或项目,我就会遇到重大问题:我现在正在使用完全错误的环境.
是否有其他更简单的方法让"工具,开放式终端"自动激活虚拟环境?
Pet*_*son 88
编辑:
根据https://www.jetbrains.com/pycharm/whatsnew/#v2016-3-venv-in-terminal,PyCharm 2016.3(2016年11月发布)为开箱即用的终端提供virutalenv支持
bash,zsh,fish和Windows cmd支持Auto virtualenv.您可以在"设置(首选项)"中自定义shell首选项 工具| 终奌站.
.pycharmrc使用以下内容在主文件夹中创建文件
source ~/.bashrc
source ~/pycharmvenv/bin/activate
使用virtualenv路径作为最后一个参数.
然后将shell Preferences-> Project Settings-> Shell path设置为
/bin/bash --rcfile ~/.pycharmrc
Adi*_*gor 40
不知何故,一个小技巧对我有用。您所要做的就是将默认终端从 Power shell 更改为 CMD。
Shell Path为C:\Windows\system32\cmd.exe从PSActivate virtualenv复选框apply并打开新终端现在是 2021 年,您不需要指定文件路径或添加环境变量。
更新:现在是 2022 年,我遇到了同样的问题 修复:按照上述步骤操作,此外,确保您已选择您的虚拟环境 python.exe 作为您的项目 python 解释器,仅此而已
Sae*_*aeX 38
对于Windows用户:将PyCharm与虚拟环境一起使用时,可以使用该/K参数cmd.exe自动设置虚拟环境.
PyCharm 3或4: ,,Settings 和添加.TerminalDefault 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""
Pri*_*r22 38
对于Windows用户在Windows下使用PyCharm和虚拟环境时,可以使用cmd.exe中的/ k参数自动设置虚拟环境.
转到设置,终端,默认shell并添加/K <path-to-your-activate.bat>.
我没有声誉对先前的回复发表评论,因此发布了此更正版本.这确实节省了很多时间.
更新:
注意:Pycharm现在直接支持虚拟环境,它似乎对我有用 - 所以我的解决方法不再需要了.
基于彼得的答案和实验,我提出了一个很好的"通用解决方案",它解决了以下问题:
将此脚本放入某个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的Shell路径设置为:
/bin/bash --rcfile ~/bin/pycharmactivate
如果您使用的是 Windows 版本,这很容易。如果您已经拥有虚拟环境,只需导航到其文件夹,找到activate.batinsideScripts文件夹。复制它的完整路径并将其粘贴到 pycharm 的终端中,然后按即可Enter完成!
如果您需要创建新的虚拟环境:
转到文件 > 设置,然后搜索project interpreter,打开它,单击齿轮按钮并在任何地方创建环境,然后按照第一段进行操作。
小智 6
谢谢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
我已经查看了上面的所有答案,但没有一个对我来说足够优雅。在Pycharm 2017.1.3(在我的电脑中),最简单的方法是打开Settings->Tools->Terminal并勾选Shell integration和Activate virtualenv选项。
| 归档时间: | 
 | 
| 查看次数: | 97328 次 | 
| 最近记录: |