pyCharm终端不激活conda环境

时间:2018-02-22 10:14:57

标签: python pycharm anaconda conda

我在Windows的默认位置有一个conda环境,C:\ProgramData\Anaconda2\envs\myenv。此外,根据建议,conda脚本和可执行文件不在%PATH%环境变量中。 我在pycharm中打开了一个项目并指向python解释器 C:\ProgramData\Anaconda2\envs\myenv\python.exe 和pycharm似乎与python控制台,运行环境和调试模式中的环境配合良好。

但是,打开终端时,环境未激活(我确保选中了激活环境的复选框)。要清楚 - 当我使用virtualenv做同样的事情时,终端确实可以毫无问题地激活环境。

以下是我尝试过的一些不起作用的事情:

  • 将激活脚本从anaconda文件夹复制到环境文件夹
  • 将激活脚本从anaconda文件夹复制到环境
  • 下的Scripts文件夹
  • 从virtualenv(激活环境的同一个)复制激活脚本
  • 将anaconda文件夹添加到路径

这些都没有奏效。 一旦终端打开,我可以手动激活环境而不会出现问题,但我该如何自动完成?

10 个答案:

答案 0 :(得分:11)

我遇到了同样的问题,并使用了该解决方案。

  1. 转到SELECT Name, @highest_val:= GREATEST(type1, type2, type3) AS highest_col_value, CASE @highest_val WHEN type1 THEN 'type1' WHEN type2 THEN 'type2' WHEN type3 THEN 'type3' END AS highest_value_column_name FROM myTable;

  2. File -> Settings -> Tools -> Terminal中的值替换为Shell path

如果我在cmd.exe "/K" C:\path\to\Anaconda3\Scripts\activate.bat your_environment_name中安装了Anaconda,并且有一个名为C:\Anaconda3的环境,那么我的设置将如下所示:

Terminal Tool Application settings

答案 1 :(得分:9)

这似乎是一个已知的issue

答案 2 :(得分:3)

如果有人想知道Linux的设置,请按以下步骤操作。在您的家.pycharmrc中创建文件dir。打开文件并添加以下内容

source ~/.bashrc
source ~/anaconda3/bin/activate your_env_name 

现在转到Pycharm File > Settings > Tools > Terminal > Shell path,将您的shell路径替换为/bin/bash --rcfile ~/.pycharmrc

现在,当您打开终端时,指定的conda env将激活。

答案 3 :(得分:2)

扩展Darksinge的答案以适应conda> = 4.4和多个环境,如果1)您的conda环境和项目使用相同的名称,并且2)您将项目保留在同一目录中,则可以使用以下解决方法:

cmd.exe "/K" C:\path\to\Anaconda3\Scripts\activate.bat C:\path\to\Anaconda3 & activate %cd:C:\path\to\project\parent\directory\=%

最后一部分(%cd:C:\path\to\project\parent\directory\=%)应该从当前工作目录中推断项目名称。例如,我将项目保留在Z:\中,因此%cd:Z:\=%返回我的项目名称。您可以在以下网址阅读更多信息:How to replace substrings in windows batch file

答案 4 :(得分:1)

找到了解决方案。问题是我们在开始新项目时一直在Pycharm中创建conda环境。

这是在位置/Users/<username>/.conda/envs/<env-name>上创建的。

例如/Users/taponidhi/.conda/envs/py38

相反,请使用conda create --name py38从终端创建环境。 这将在/opt/anaconda3/envs/处创建环境。

此后,在开始新项目时,请从现有环境中选择该环境。一切正常。

答案 5 :(得分:0)

这是我为MacOS或Linux用户提供的解决方案:

首先,将此内容添加到您的summary(dolls) ~/.bash_profile中,具体取决于您的外壳。记住在conda初始化后放它:

~/.zshrc

然后转到您的PyCharm设置,转到“工具”->“终端” 在“项目设置”中,将CONDA_ENV = yourenv添加到您的环境变量中

yourenv是您的conda中该特定项目的环境名称

答案 6 :(得分:0)

我正在使用OSX,zshell已成为2020年的默认shell。 我遇到了同样的问题:我的conda环境无法在pycharm终端中正常工作。

File -> Settings -> Tools -> Terminal.默认外壳程序路径配置为/bin/zsh --login

我在一个单独的OSX终端上进行了测试,该终端以某种方式弄乱了/bin/zsh --login变量。 $PATH始终在结尾而不是开头添加conda env路径。因此,由于PATH字符串混乱,默认的python(2.7)始终优先。这个问题与pycharm无关(只是zshell与--login的行为方式),

我从脚本路径中删除了conda activate部分; --login才有效(此更改后,我不得不重新启动pycharm!)

答案 7 :(得分:0)

混合了这里的几个答案,我想出了一个 Windows 中 Git Bash 的解决方案:

  1. 转到File -> Settings -> Tools -> Terminal

  2. 将“Shell path”中的值替换为

"C:\Program Files\Git\bin\bash.exe" --login && conda activate myenv

答案 8 :(得分:0)

基于linux解决方案为windows用户解决。

  1. 在项目根目录(重要)中创建一个批处理脚本(我的名为 env_win10.bat)并粘贴以下内容:
@echo OFF
:: conda activation path
set conda_activate_path=C:\ProgramData\Anaconda3\Scripts\activate.bat

:: environments for this project on several of different computers
set env_path=C:\Users\GiladEiniKbyLake\.conda\envs\bin
set env_basename=bin

if exist %env_path% (
    echo activating env: %env_path%
    %conda_activate_path% %env_basename%
) else (
    echo cant find path %env_path%
    echo activating base interpreter...
    %conda_activate_path%
)
  1. 在 bat 文件中编辑路径:
  • anaconda 的 activate.bat 的 conda_activate_path
  • 环境文件夹的 env_path
  • env_basename 到环境名称(不知道如何在批处理脚本中获取 os.path.basename())
  1. 在 pycharm 上转到 Tools->Terminal->shell 并输入
cmd.exe "/K" ./env_win10.bat
  1. 奖励:
  • 在桌面上创建一个快捷方式并插入pycharm exe路径并将其命名为您的项目名称。例如wizzi_utils。
  • 右键单击属性并在目标中添加项目的路径。例如
"C:\Program Files\JetBrains\PyCharm Community Edition 2018.2.4\bin\pycharm64.exe" "D:\workspace\2021wizzi_utils"
  • 现在您的项目有一个快捷方式

注意事项

您现在必须对在 pycharm 中打开的每个项目执行此操作,因为 pycharm 将在项目的根文件夹中查找“env_win10.bat”。好消息是您需要为每个项目执行一次。建议将其放在“.gitignore”上,并在每个用户的计算机上创建此批处理脚本。如果您确实希望为所有用户组合并上传到 git 怎么办?只需添加更多路径变量。这是我在笔记本电脑和台式机上编写的一个项目示例:

@echo OFF
:: conda activation path
set conda_activate_path=C:\ProgramData\Anaconda3\Scripts\activate.bat

:: environments for this project on several of different computers
set laptop_env_path=C:\Users\gilad\.conda\envs\bin
set laptop_env_basename=bin
set desktop_env_path=C:\Users\GiladEiniKbyLake\.conda\envs\bin
set desktop_env_basename=bin

:: checking if we are on the 1st option
if exist %laptop_env_path% (
    echo activating env: %laptop_env_path%
    %conda_activate_path% %laptop_env_basename%
) else (
    :: checking if we are on the 2st option
    if exist %desktop_env_path% (
        echo activating env: %desktop_env_path%
        %conda_activate_path% %desktop_env_basename%
    ) else (
        :: fail safe - just activate conda base interpreter
        echo cant locate any of the paths:
        echo    %laptop_env_path%
        echo    %desktop_env_path%
        echo    activating base interpreter...
        %conda_activate_path%
    )
)

答案 9 :(得分:-1)

当您像这样默认禁用激活 (base) 环境时,可能会发生这种情况:

conda config --set auto_activate_base false 

要解决此问题,请重新激活该功能。

conda config --set auto_activate_base true 
相关问题