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;
}
后来我在查看的时候发现他们很多都有一种思路,那就是系统环境变量出了问题;
所以我顺着这个思路进行了修改
所以接下来我们定位到报错信息的
这些标志里面,这些内容,其实是系统环境变量path里面的内容:
然后我们把
这个变量找到:
然后我们发现这个变量是:
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\
然后我们去看一看文件管理器
我们发现有2个cuda,那既然这样,11.3这个环境变量又报错了,我们干脆直接把有关CUDA\11.3的环境变量删掉。就用cuda10.1【因为我的很多深度学习环境安装的torchgpu版本就是cu101的,所以我保留cu101的环境变量】
删掉之后就这样了:
可以看到cuda后面不是
这个环境变量已经给我删掉了,这个最终的结果虽然和报错的一部分信息是一样的,因为我忘记截图没删之前的环境变量了。
但是这个报错已经给我们解决了,打开已经不会再报错了:
我在网上看到很多人都没有用我相同的解决方式,可能是因为他们没有像我一样装2个版本的CUDA,所以没有冲突。所以说,如果搞深度学习的朋友们的power shell出现开头的问题,很有可能是出现了和我一样的cuda环境变量冲突问题,只要把报错
这里的环境变量删掉【前提是你也是多种版本环境变量冲突】
或者是,你可以考虑把环境变量的位置调整一下看看。
那么,遇到的这一个问题就解决了。
这期结束,下期再见。
zbossz
【Power Shell】Invoke-Expression ,Invoke-Expression -Command $activateCommand;错误或power shell激活虚拟环境报错失败