在Pycharm中使用conda环境(亲测)

网上的教程感觉太乱了并且没有特别新版的,这次做课程大作业正好要用到新conda环境,借此机会来实践并分享一下(我是2024.3.1版本的Pycharm)。

教程

首先打开你的项目,选择右上角的文件,再选择设置(我改了中文,英文就是Settings)。

d825825ab3364ce59a2c02ad5db0db89.png

左侧列表选择项目中的Python解释器,然后点右边红框中的添加本地解释器。

35559eacd14d465bbd33ee0dd7b79641.png

选择现有,类型选conda,然后去文件夹里找到你的anaconda或者miniconda的Scripts目录下的conda.exe文件并选中,它会自动检测你已经创建的conda环境,最后选想用的就可以(我这里选的是我新创的py39这个环境)。

af70a85aae8546c0a02e8dda1648f3c8.png

现在打开pycharm的终端,就会发现powershell自动进入我们刚刚选择的py39这个conda环境啦。

遇到的问题

报错1

上面的过程做完后在终端激活环境就可以了,但是由于我的系统环境变量以前设置的有点问题,因此出现了报错,在这里顺便记录一下,报错如下:

Invoke-Expression : 所在位置 行:1 字符: 420
+ ... ll\v1.0;C:\WINDOWS\System32\OpenSSH;"d:\qqquartus\quartus\bin;";"D:\j ...
+                                          ~~~~~~~~~~~~~~~~~~~~~~~~
表达式或语句中包含意外的标记“d:\qqquartus\quartus\bin”。
所在位置 行:1 字符: 448
+ ... System32\OpenSSH;"d:\qqquartus\quartus\bin;";"D:\java\jdk\bin;";"D:\j ...
+                                                   ~~~~~~~~~~~~~~~
表达式或语句中包含意外的标记“D:\java\jdk\bin”。
所在位置 行:1 字符: 467
+ ... quartus\quartus\bin;";"D:\java\jdk\bin;";"D:\java\jdk\jre\bin;";D:\an ...
+                                               ~~~~~~~~~~~~~~~~~~~
表达式或语句中包含意外的标记“D:\java\jdk\jre\bin”。
所在位置 D:\anaconda\shell\condabin\Conda.psm1:76 字符: 9
+         Invoke-Expression -Command $activateCommand;
+         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ParserError: (:) [Invoke-Expression], ParseException
    + FullyQualifiedErrorId : UnexpectedToken,Microsoft.PowerShell.Commands.InvokeExpressionCommand

无法激活 conda 环境。
请打开 Anaconda 提示符,然后在那里运行 D:\anaconda\condabin\conda.bat init powershell。

报错说明:

在Path环境变量中,路径被多余的引号 " 和分号 ; 包裹,导致PowerShell无法解析。 

因此,Conda在PowerShell中无法激活环境,还提示我执行初始化命令conda init powershell。

解决过程:

  • 按下Win + R,输入sysdm.cpl,打开系统属性
  • 点击"高级"选项卡,选择"环境变量"
  • "系统变量"下,找到Path,点击编辑。

可以看到,我的环境变量是下面这样的,多了分号导致解析错误。因此我把最后三行后面的分号删去了。 

51c959ac51b14f11aee570a199e18e1e.png

然后,再在Anaconda Prompt中执行以下命令,初始化Conda环境支持PowerShell:

D:\anaconda\condabin\conda.bat init powershell

重新打开powershell,这时候应该会自动进入conda的base环境,你可以切换至你想要的环境。

报错2

然而,由于PowerShell执行策略限制,它禁止运行脚本,可能会导致如下报错:

. : 无法加载文件 C:\Users\86137\Documents\WindowsPowerShell\profile.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参
阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
所在位置 行:1 字符: 3
+ . 'C:\Users\86137\Documents\WindowsPowerShell\profile.ps1'
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : SecurityError: (:) [],PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

报错说明:

PowerShell默认的执行策略是Restricted,这意味着:

  • 不允许运行任何脚本(包括我们的profile.ps1文件,这是我们刚刚那个初始化命令生成的)。
  • 这是一种安全机制,防止未授权的脚本执行。

解决方法:

将执行策略设置为允许脚本运行,例如设置为 RemoteSigned(允许本地脚本,远程脚本必须有签名),这个是较推荐的执行策略,因为它平衡了安全性和灵活性。

具体步骤如下:

  1. 以管理员身份运行 PowerShell;

  2. 设置执行策略 在管理员 PowerShell 中运行以下命令:

    Set-ExecutionPolicy RemoteSigned
    

    然后输入Y(Yes)确认更改即可。

b48da16e3f184105960c93a888503087.png

现在关闭Powershell重新打开,会默认进入conda base环境,这是因为我们之前执行了conda init powershell这个命令,这个操作会修改PowerShell的profile.ps1文件,自动激活base环境。

如果你不希望PowerShell启动时自动进入base环境,可以使用以下命令关闭自动激活:

conda config --set auto_activate_base false

然后,关闭当前PowerShell 窗口,然后重新打开一个新的PowerShell,你应该看到base环境不会被自动激活

如果想要进入base环境,输入常用的指令手动激活即可:

conda activate base

abb8885ec97945048d8c01daa6512dec.png

 

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值