如何在 PyCharm 终端内激活虚拟环境?

2025-02-18 09:24:00
admin
原创
173
摘要:问题描述:我已经设置了 PyCharm,创建了我的虚拟环境(通过虚拟环境命令或直接在 PyCharm 中创建),并将该环境激活为我的解释器。一切运行正常。但是,如果我使用“工具,打开终端”打开终端,提供的 shell 提示符不会使用虚拟环境;我仍然必须source ~/envs/someenv/bin/act...

问题描述:

我已经设置了 PyCharm,创建了我的虚拟环境(通过虚拟环境命令或直接在 PyCharm 中创建),并将该环境激活为我的解释器。一切运行正常。

但是,如果我使用“工具,打开终端”打开终端,提供的 shell 提示符不会使用虚拟环境;我仍然必须source ~/envs/someenv/bin/activate在该终端内使用它来激活它。

另一种方法是在 shell 中激活环境,然后从该环境运行 PyCharm。这种方法“可行”,但非常丑陋,这意味着如果我从 PyCharm 切换环境或项目,就会遇到大问题:我现在使用的环境完全错误。

是否有其他更简单的方法可以让“工具、打开终端”自动激活虚拟环境?


解决方案 1:

编辑:

根据https://www.jetbrains.com/pycharm/whatsnew/#v2016-3-venv-in-terminal,PyCharm 2016.3(2016 年 11 月发布)具有对终端的 virutalenv 支持

bash、zsh、fish 和 Windows cmd 支持自动虚拟环境。您可以在“设置(首选项)”|“工具”|“终端”中自定义 shell 首选项 | 勾选“激活虚拟环境”

您还需要确保虚拟环境路径包含在项目结构的内容根文件夹中。如果您的环境未包含在项目目录中,您可以转到设置(首选项)| 项目 | 项目结构 |。


旧方法:
.pycharmrc在您的主文件夹中创建一个包含以下内容的文件

source ~/.bashrc
source ~/pycharmvenv/bin/activate

使用您的虚拟环境路径作为最后一个参数。

然后将 shell Preferences->Project Settings->Shell path 设置为

/bin/bash --rcfile ~/.pycharmrc

解决方案 2:

更新:

设置(首选项)| 工具 | 终端中的首选项是全局的。

如果您为每个项目使用一个 venv,请记住使用当前路径变量和默认 venv 名称:

"cmd.exe" /k ""%CD%envScriptsactivate"" 

对于 Windows 用户:当使用带有虚拟环境的 PyCharm 时,可以使用/K参数cmd.exe自动设置虚拟环境。

PyCharm 3 或 4:SettingsTerminalDefault shell并添加/K <path-to-your-activate.bat>

PyCharm 5:SettingsToolsTerminal,并添加/K <path-to-your-activate.bat>Shell path

PyCharm 2016.1 或 2016.2:SettingsToolsTerminal,并添加""/K <path-to-your-activate.bat>""Shell path并添加(注意引号)。还要在 cmd.exe 周围添加引号,结果如下:

"cmd.exe" /k ""C:mypathmy-venvScriptsactivate.bat""

解决方案 3:

不知怎的,一个小技巧对我有用。你所要做的就是将默认终端从 Power shell 更改为 CMD。

  1. 打开 pycharm --> 进入设置 --> 工具 --> 终端

  2. 更改Shell PathC:Windowssystem32cmd.exePS

  3. 勾选Activate virtualenv复选框

  4. 点击apply并打开新终端

2021 年您不需要指定文件路径或添加环境变量。

更新:现在是 2022 年,我遇到了同样的问题。
修复:请按照上述步骤操作,此外,请确保已选择虚拟环境 python.exe 作为项目 python 解释器,就这样

解决方案 4:

对于 Windows 用户,在 Windows 下使用 PyCharm 和虚拟环境时,可以使用 cmd.exe 的 /k 参数自动设置虚拟环境。

转到设置、终端、默认 shell 并添加/K <path-to-your-activate.bat>

我没有资格对之前的回复发表评论,所以发布这个修正版本。这确实节省了很多时间。

更新:

注意:Pycharm 现在直接支持虚拟环境,而且对我来说似乎效果很好 - 所以不再需要我的解决方法。

解决方案 5:

如果您使用的是 Windows 版本,则非常简单。如果您已经有虚拟环境,只需导航到其文件夹,找到文件夹activate.bat内部Scripts。复制其完整路径并将其粘贴到 pycharm 的终端中,然后按Enter即可完成!

如果需要创建新的虚拟环境:

转到文件>设置,然后搜索project interpreter,打开它,单击齿轮按钮并在您想要的任何位置创建环境,然后按照第一段进行操作。

裝備!

解决方案 6:

我已经查看了上述所有答案,但对我来说,它们都不够优雅。在 PyCharm 2017.1.3(在我的计算机上)中,最简单的方法是打开Settings->Tools->Terminal并检查Shell integration选项Activate virtualenv

图像

解决方案 7:

根据 Peter 的回答和实验,我想出了一个很好的“通用解决方案”,它解决了以下问题:

  • 恢复登录 shell 的行为。PyCharm 通常会运行登录 shell,但 --rcfile 阻止了这种情况的发生。脚本仍然使用 --rcfile,但尝试模拟登录 shell 的 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的Shell路径设置为:

/bin/bash --rcfile ~/bin/pycharmactivate

解决方案 8:

PyCharm 4 现在已在 IDE 中集成了虚拟环境。选择项目解释器时,您可以创建、添加或选择虚拟环境。他们添加了在配置的项目解释器中运行的“Python 控制台”。

更多信息请见此处。

解决方案 9:

谢谢 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

解决方案 10:

如果你已经将项目移动到另一个目录,你可以通过设置对话框设置新路径。然后你需要在编辑配置对话框中设置这个项目解释器。

在此处输入图片描述

在此处输入图片描述

解决方案 11:

在 Mac 上,它是PyCharm => 首选项... => 工具 => 终端 => 激活 virtualenv,默认情况下应该启用。

解决方案 12:

我刚刚将一个名为 pycharmactivate 的脚本添加到我的主目录中。将 PyCharm (4.0.1) 的值设置为文件 > 设置 > 工具 > 终端 > Shell 路径为 /bin/bash --rcfile ~/pycharmactivate。如果您有不同的项目和虚拟环境目录/名称,这可能不是最好的解决方案,但它对我有用。此脚本包含以下 3 行,并假定您的虚拟环境与您的项目目录同名。

source ~/.bashrc
projectdir=${PWD##*/}
source ~/.virtualenvs/$projectdir/bin/activate

解决方案 13:

这是我正在做的事情:在源代码文件夹中创建一个 activate_env.bat(windows,linux 中可能是 .sh)文件:

/env_yourenvlocate/scripts/activate.bat

另一个文件是 deactivate_env.bat:

/env_yourenvlocate/scripts/deactivate.bat

每次打开终端窗口,只需执行 bat 文件来激活/停用虚拟环境,您将停留在源代码路径中,无需更改路径并返回。

E:Projectsdjango_studysrc>active_env.bat

E:Projectsdjango_studysrc>../env_django_study/scripts/activate.bat
(env_django_study) E:Projectsdjango_studysrc>



(env_django_study) E:Projectsdjango_studysrc>deactive_env.bat

(env_django_study)E:Projectsdjango_studysrc>../env_django_study/scripts/deactivate.bat
E:Projectsdjango_studysrc>

解决方案 14:

根据 Peter 的回答,这里是该.pycharmrc文件的 Mac 版本:

source /etc/profile
source ~/.bash_profile
source  <venv_dir>/bin/activate

母鸡

解决方案 15:

WSL 的解决方案(Windows 上的 Ubuntu)

如果您使用的是 WSL(Windows 上的 Ubuntu),您也可以在 pycharm 中打开 bash 作为终端并激活 linux 虚拟环境。

使用.pycharmrcPeter Gibson 的答案中描述的文件;将.pycharmrc文件添加到您的主目录,内容如下:

source ~/.bashrc
source ~/path_to_virtualenv/bin/activate

在 Pycharm文件 > 设置 > 工具 > 终端中添加以下“Shell 路径”:

"C:/Windows/system32/bash.exe" -c "bash --rcfile ~/.pycharmrc"

项目特定的虚拟环境

虚拟环境的路径.pycharmrc不必是绝对路径。您可以通过设置项目目录中的相对路径来设置特定于项目的虚拟环境。我的虚拟环境始终位于项目目录下的“venv”文件夹中,因此我的.pycharmrc文件如下所示:

source ~/.bashrc
 source ~/pycharmvenv/bin/activate #绝对路径
源 ./venv/bin/activate #相对路径

奖励:自动打开 ssh 隧道以连接 virtualenv 作为项目解释器

将以下内容添加到您的.pycharmrc文件中:

if [ $(ps -aux | grep -c 'ssh') -lt 2 ]; then
    sudo service ssh start 
fi

这将检查 ssh 隧道是否已打开,否则将打开一个。在Pycharm 中的文件 -> 设置 -> 项目 -> 项目解释器中,使用以下配置添加一个新的远程解释器:

+-------------------------------------+--------------------------------+--------+----+
| 姓名:| <解释器姓名> | | |
| 选择 | ‘SSH 凭证’ | | |
| 主机:| 127.0.0.1 | 端口:| 22 |
| 用户:| <Linux 用户名> | | |
| 授权类型: | '密码' | | |
| 密码:| <Linux 密码> | | |
| Python 解释器路径: | <你的虚拟环境的 Linux 路径> | | |
| Python 帮助程序路径: | <自动设置> | | |
+-------------------------------------+--------------------------------+--------+----+

现在,当您打开项目时,您的 bash 会自动在您的虚拟环境中启动,打开 ssh 隧道,并且 pycharm 会将虚拟环境作为远程解释器连接。

警告:Windows 中的最新更新会在启动时自动启动 SshBroker 和 SshProxy 服务。这些服务会阻止从 Linux 到 Windows 的 SSH 隧道。您可以在任务管理器 -> 服务中停止这些服务,之后一切都会恢复正常。

解决方案 16:

我在 PyCharm 中使用venv时也遇到了同样的问题。但这不是什么大问题!只需执行以下操作:

  1. 进入你的终端 venv 目录( cd venv/Scripts/ )

  2. 您将看到activate.bat

  3. 只需在您的终端中输入 activate.bat 之后您将看到您的(venv)

解决方案 17:

我遇到了类似的问题,即在 pycharm 终端 ( Pycharm 版本 2021.2.2 ) 中未激活 venv。只需按照以下步骤操作即可。

转到“设置->工具->终端”,然后在该窗口的底部检查“激活虚拟环境”是否有勾选,如果没有,则确保该框被勾选。

然后在该窗口的中间部分检查 shell 路径是否设置为“cmd.exe”,如果没有,则将其设置为“cmd.exe”(它将具有与之关联的路径,因此无需执行任何操作,只需从下拉列表中单击“cmd.exe”),然后单击下面的“应用”按钮并单击“确定”。

现在完成了,只需关闭打开的终端并重新打开它。您将在项目路径前面看到“venv”。

附言:不要介意我的答案中的双引号,它们只是为了突出显示文本,仅此而已。

解决方案 18:

Windows 简易解决方案:

  1. 在 Pycharm 中,左侧的项目菜单里会有文件夹。

  2. 找到脚本文件夹

  3. 你会在里面找到 activate.bat

  4. 右键单击 activate.bat

  5. 复制/路径参考

  6. 选择绝对路径

  7. 找到位于 Pycharm 底部中间的终端选项卡。

  8. 将其粘贴到终端控制台并按 Enter

  9. 如果您操作正确,终端路径将在您激活的文件夹名称周围带有括号(venv)。

  10. 之前:“PS C:\”

  11. 之后:“(venv) C:\”

  12. 注意文件夹名称可能与您的不同,重要的部分是(括号):D

解决方案 19:

遇到了同样的问题,我是这样解决的:

您要做的就是将默认终端从 Power shell 更改为 CMD。打开 pycharm --> 转到设置 --> 工具 --> 终端。将 Shell 路径从 PS 更改为 C:\Windows\system32\cmd.exe。选中激活虚拟环境复选框。点击应用并打开新终端。

解决方案 20:

我有一个适用于我的 Windows 7 机器的解决方案。

我相信 PyCharm 的终端是它运行的结果cmd.exe,它将加载 WindowsPATH变量,并使用在其中首先找到的 Python 版本PATH。要编辑此变量,请右键单击我的电脑-->属性-->高级系统设置-->高级选项卡 -->环境变量...按钮。在系统变量部分中,选择并编辑PATH变量。

PATH 以下是我编辑之前的相关部分:

C:\Python27\;

C:\Python27\Lib\site-packages\pip\;

C:\Python27\Scripts;

C:\Python27\Lib\site-packages\django\bin;

...编辑PATH(现在只有 3 行):

C:[项目路径]\virtualenv-Py2.7_Dj1.7\Lib\site-packages\pip;

C:[项目路径]\virtualenvs\virtualenv-Py2.7_Dj1.7\Scripts;

C:[项目路径]\virtualenvs\virtualenv-Py2.7_Dj1.7\Lib\site-packages\django\bin;

要测试这一点,请打开一个新的Windows 终端(开始--> 输入cmd并点击Enter),看看它是否正在使用您的虚拟环境。如果有效,请重新启动 PyCharm,然后在 PyCharm 的终端中进行测试。

解决方案 21:

如果你的 Pycharm 2016.1.4v 及更高版本,你应该使用
"default path" /K "<path-to-your-activate.bat>"
不要忘记引号

解决方案 22:

在 Windows 上,如果您已经有虚拟环境(例如位于项目根目录中的“myvenv”),则可以从终端激活它,如下所示:

.myvenvScriptsactivate

从您想要激活的虚拟环境调用激活,激活虚拟环境。

当你看到变化时,你就知道它已被激活:

C:ProjectsTrunkMyProject>

(myvenv)C:ProjectsTrunkMyProject>

解决方案 23:

如果你使用的是带有 wsl2 的 Windows,那么对我而言唯一有用的方法(2022 年 11 月)是:

  1. 进入Pycharm终端定义

  2. 粘贴:

wsl.exe -- bash --rcfile <(echo '. ~/.bashrc; source <path-to-your-virtial-env>/bin/activate')

在‘Shell 路径’框内。

然后每次打开终端时虚拟环境就会被激活。

在此处输入图片描述

解决方案 24:

另一种选择是使用virtualenvwrapper来管理您的虚拟环境。看来,一旦激活了 virtualenvwrapper 脚本,pycharm 就可以使用它,然后workonpycharm 控制台中就会提供简单的命令,并向您显示可用的虚拟环境:

kevin@debian:~/Development/django-tutorial$ workon
django-tutorial
FlaskHF
SQLAlchemy
themarkdownapp
kevin@debian:~/Development/django-tutorial$ workon django-tutorial
(django-tutorial)kevin@debian:~/Development/django-tutorial$ 

解决方案 25:

此方法应该适用于每个项目的任意虚拟环境,并且它不会对您的环境做出假设,因为它使用您创建的钩子。

你写道:

  • 调用钩子的全局脚本

  • 每个 PyCharm 项目一个钩子脚本(非强制性)

鉴于当前最新的 PyCharm(Community 2016.1)不允许每个项目都进行终端设置,请从调用项目特定钩子的脚本开始。这是我的~/.pycharmrc

if [ -r ".pycharm/term-activate" ]; then
   echo "Terminal activation hook detected."
   echo "Loading Bash profile..."
   source ~/.bash_profile
   echo "Activating terminal hook..."
   source ".pycharm/term-activate"
   source activate $PYCHARM_VENV
fi

如果您正在使用 Bash 以外的其他程序,请.bash_profile根据需要调用您自己的等效程序。

现在设置你的 PyCharm“工具 -> 终端 -> Shell 路径”来调用此脚本,例如:/bin/bash --rcfile ~/.pycharmrc

最后,对于每个需要激活特定虚拟环境的 PyCharm 项目,请在 PyCharm 项目根目录中创建一个文件.pycharm/term-activate。这是您的钩子,它将简单地定义您的 PyCharm 项目所需虚拟环境的名称:

export PYCHARM_VENV=<your-virtual-env-name>

当然,您可以使用您在特定 PyCharm 项目的终端环境中发现的任何有用的东西来扩展您的钩子。

解决方案 26:

对于 Windows 上的 conda 虚拟环境,请确保您的批处理文件未命名activate.bat,因为这会导致与 conda 命令冲突activate,从而导致批处理文件的递归调用。

对我有用的是以下 Shell 路径:

"cmd.exe" /k ""C:FullPathToYourProjectactivate-env.bat""

在 activate-env.bat 文件中:

call activate myenvname

解决方案 27:

我希望每个项目都有一个单独的虚拟环境,并且不太在意是否有额外的文件来促进这一点。您只需执行一次并适用于所有项目的解决方案是将以下内容添加到您的.bashrc.bash_profile

if [ -d "./venv" ]; then
    source ./venv/bin/activate
fi

这将检查是否存在打开终端的虚拟环境,如果是,则激活它(当然也可以使用其他相对路径)。PyCharm 的终端设置可以保留为默认设置。

解决方案 28:

PyCharm 4.5.4

在你的主文件夹中创建一个 .pycharmrc 文件,其中包含以下内容

source ~/.bashrc
source ~/pycharmvenv/bin/activate

使用您的虚拟环境路径作为最后一个参数。

然后将 shell Preferences->Project Settings->Shell path 设置为

/bin/bash --rcfile ~/.pycharmrc

我不知道为什么,但它对我来说不起作用。PyCharm 打印错误。

cmd.exe /K "<path-to-your-activate.bat>"
它可以起作用,但是它为每个项目创建相同的虚拟环境,即使这不是必要的。

这张收据可以正常工作!但字符串/env_yourenvlocate/scripts/activate.bat必须包含引号,就像这样"Full_path_to_your_env_locatescriptsactivate.bat"

停用虚拟环境非常简单 - 在终端中输入“deactivate”

(virt_env) D:Projectssrc>deactivate
D:Projectssrc>

解决方案 29:

进入终端时,有一个选项:运行 > 调试 > 编辑配置
在此处输入图片描述

在此处输入图片描述

选择适当的 conda 环境.. 另外,当您创建一个新项目时 - 它会要求配置这个位置。

解决方案 30:

在此处输入图片描述
如您所见,python 解释器位于 venv/bin/python。如果您转到此文件夹,您将看到其中列出的所有库
在此处输入图片描述
...正如您所想的那样,您可以使用 python 命令及其路径 - 例如在项目路径中

./venv/bin/pytest
相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   2599  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1556  
  IPD(Integrated Product Development)流程作为一种先进的产品开发管理模式,在众多企业中得到了广泛应用。其中,技术评审与决策评审是IPD流程中至关重要的环节,它们既有明显的区别,又存在紧密的协同关系。深入理解这两者的区别与协同,对于企业有效实施IPD流程,提升产品开发效率与质量具有重要意义...
IPD管理流程   38  
  本文介绍了以下10款项目管理软件工具:禅道项目管理软件、ClickUp、Freshdesk、GanttPRO、Planview、Smartsheet、Asana、Nifty、HubPlanner、Teamwork。在当今快速变化的商业环境中,项目管理软件已成为企业提升效率、优化资源分配和确保项目按时交付的关键工具。然而...
项目管理系统   32  
  建设工程项目质量关乎社会公众的生命财产安全,也影响着企业的声誉和可持续发展。高质量的建设工程不仅能为使用者提供舒适、安全的环境,还能提升城市形象,推动经济的健康发展。在实际的项目操作中,诸多因素会对工程质量产生影响,从规划设计到施工建设,再到后期的验收维护,每一个环节都至关重要。因此,探寻并运用有效的方法来提升建设工程...
工程项目管理制度   28  
热门文章
项目管理软件有哪些?
曾咪二维码

扫码咨询,免费领取项目管理大礼包!

云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用