【Power Shell】Invoke-Expression ,Invoke-Expression -Command $activateCommand;错误或power shell激活虚拟环境报错失败

power Shell 一打开就有红字错误:

Invoke-Expression : 所在位置 行:1 字符: 1164
+ ... \Xshell 7;C:\Program Files (x86)\NetSarang\Xftp 7;"C:\Program Files\N ...

+                                                        ~~~~~~~~~~
表达式或语句中包含意外的标记“C:\Program”。
所在位置 D:\Programe\Anaconda\shell\condabin\Conda.psm1:109 字符: 15
+               Invoke-Expression -Command $activateCommand;
+               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ParserError: (:) [Invoke-Expression], ParseException
    + FullyQualifiedErrorId : UnexpectedToken,Microsoft.PowerShell.Commands.InvokeExpressionCommand

这边我使用了很多 无用的办法:
①conda init
②conda install -n root -c pscondaenvs pscondaenvs
③把 Invoke-Expression -Command $activateCommand;
改成

    If(-not [String]::IsNullOrEmpty($activateCommand)) {
          Invoke-Expression -Command $activateCommand;
    }

后来我在查看的时候发现他们很多都有一种思路,那就是系统环境变量出了问题;
所以我顺着这个思路进行了修改
所以接下来我们定位到报错信息的

【Power Shell】Invoke-Expression ,Invoke-Expression -Command $activateCommand;错误或power shell激活虚拟环境报错失败
这些标志里面,这些内容,其实是系统环境变量path里面的内容:
【Power Shell】Invoke-Expression ,Invoke-Expression -Command $activateCommand;错误或power shell激活虚拟环境报错失败
【Power Shell】Invoke-Expression ,Invoke-Expression -Command $activateCommand;错误或power shell激活虚拟环境报错失败
【Power Shell】Invoke-Expression ,Invoke-Expression -Command $activateCommand;错误或power shell激活虚拟环境报错失败
然后我们把
【Power Shell】Invoke-Expression ,Invoke-Expression -Command $activateCommand;错误或power shell激活虚拟环境报错失败
这个变量找到:
然后我们发现这个变量是:
C:\Program Files\NVIDIA GPU ComputingToolkit\CUDA\v11.3\lib\x64;
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.3\bin;
C:\ProgramFiles\NVIDIAGPUComputingToolkit\CUDA\v11.3\common\lib\x64;
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.3\bin\

然后我们去看一看文件管理器

【Power Shell】Invoke-Expression ,Invoke-Expression -Command $activateCommand;错误或power shell激活虚拟环境报错失败
我们发现有2个cuda,那既然这样,11.3这个环境变量又报错了,我们干脆直接把有关 CUDA\11.3的环境变量删掉。就用cuda10.1【因为我的很多深度学习环境安装的torchgpu版本就是cu101的,所以我保留cu101的环境变量】
删掉之后就这样了:
【Power Shell】Invoke-Expression ,Invoke-Expression -Command $activateCommand;错误或power shell激活虚拟环境报错失败
可以看到cuda后面不是

【Power Shell】Invoke-Expression ,Invoke-Expression -Command $activateCommand;错误或power shell激活虚拟环境报错失败
这个环境变量已经给我删掉了,这个最终的结果虽然和报错的一部分信息是一样的,因为我忘记截图没删之前的环境变量了。
但是这个报错已经给我们解决了,打开已经不会再报错了:
【Power Shell】Invoke-Expression ,Invoke-Expression -Command $activateCommand;错误或power shell激活虚拟环境报错失败

我在网上看到很多人都没有用我相同的解决方式,可能是因为他们没有像我一样装2个版本的CUDA,所以没有冲突。所以说,如果搞深度学习的朋友们的power shell出现开头的问题,很有可能是出现了和我一样的cuda环境变量冲突问题,只要把报错

【Power Shell】Invoke-Expression ,Invoke-Expression -Command $activateCommand;错误或power shell激活虚拟环境报错失败
这里的环境变量删掉【前提是你也是多种版本环境变量冲突】
或者是,你可以考虑把环境变量的位置调整一下看看。
那么,遇到的这一个问题就解决了。
这期结束,下期再见。

Original: https://blog.csdn.net/weixin_54130714/article/details/125830009
Author: zbossz
Title: 【Power Shell】Invoke-Expression ,Invoke-Expression -Command $activateCommand;错误或power shell激活虚拟环境报错失败

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/718728/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球