如何在PowerShell脚本块中激活conda环境
我希望使用PowerShell远程运行/管理Miniconda。在远程PC上,Miniconda3是通过以下方式安装的:如何在PowerShell脚本块中激活conda环境,powershell,conda,remote-access,miniconda,Powershell,Conda,Remote Access,Miniconda,我希望使用PowerShell远程运行/管理Miniconda。在远程PC上,Miniconda3是通过以下方式安装的: Miniconda3-latest-Windows-x86_64.exe /InstallationType=JustMe /RegisterPython=1 /AddToPath=1 /S /D=%UserProfile%\Miniconda3 注意,选项/AddToPath=1将conda添加到PATH环境变量中 在该远程计算机上,使用PowerShell创建conda
Miniconda3-latest-Windows-x86_64.exe /InstallationType=JustMe /RegisterPython=1 /AddToPath=1 /S /D=%UserProfile%\Miniconda3
注意,选项/AddToPath=1
将conda
添加到PATH
环境变量中
在该远程计算机上,使用PowerShell创建conda环境:
PS C:\> Invoke-Command -ComputerName otherpc -ScriptBlock {conda create -n py36 python=3.6}
很酷,这很管用:
PS C:\> Invoke-Command -ComputerName otherpc -ScriptBlock {conda env list}
# conda environments:
#
base * C:\Users\user1\Miniconda3
py36 C:\Users\user1\Miniconda3\envs\py36
但是,不能简单地激活新环境:
PS C:\> Invoke-Command -ComputerName otherpc -ScriptBlock {
>> conda activate py36
>> conda info
>> }
active environment : None
user config file : C:\Users\user1\.condarc
populated config files :
conda version : 4.8.5
conda-build version : not installed
python version : 3.8.5.final.0
virtual packages :
base environment : C:\Users\user1\Miniconda3 (writable)
channel URLs : https://repo.anaconda.com/pkgs/main/win-64
https://repo.anaconda.com/pkgs/main/noarch
https://repo.anaconda.com/pkgs/r/win-64
https://repo.anaconda.com/pkgs/r/noarch
https://repo.anaconda.com/pkgs/msys2/win-64
https://repo.anaconda.com/pkgs/msys2/noarch
package cache : C:\Users\user1\Miniconda3\pkgs
C:\Users\user1\.conda\pkgs
C:\Users\user1\AppData\Local\conda\conda\pkgs
envs directories : C:\Users\user1\Miniconda3\envs
C:\Users\user1\.conda\envs
C:\Users\user1\AppData\Local\conda\conda\envs
platform : win-64
user-agent : conda/4.8.5 requests/2.24.0 CPython/3.8.5 Windows/10 Windows/10.0.17763
administrator : True
netrc file : None
offline mode : False
我尝试在ScriptBlock的开头添加conda init
,这只会对各种shell文件添加“无更改”,包括一些*.ps1
文件,但没有修复任何问题
如何在PowerShell脚本块中激活conda环境?我找到的解决方案是使用以前由
conda init
配置的启动脚本注册PowerShell会话配置:
Invoke-Command -ComputerName otherpc -ScriptBlock {
Register-PSSessionConfiguration -Name UserProfile -StartupScript %USERPROFILE%\Documents\WindowsPowerShell\profile.ps1
}
# restart afterward
Get-Service -ComputerName otherpc -Name WinRM | Restart-Service
此操作只需执行一次,并存储在注册表中:
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WSMAN\Plugin\UserProfile
现在将
-ConfigurationName UserProfile
与后续的调用命令一起使用,例如:
Invoke-Command -ComputerName otherpc -ConfigurationName UserProfile -ScriptBlock {
conda activate py36
conda info
}
我不在Windows上,但对于POSIX shell,conda init
只创建要在shell初始化期间运行的代码-它实际上并不运行这些命令。假设它与PowerShell上的类似,您可能需要在会话中为脚本miniconda3/shell/condabin/Conda.psm1
提供源代码,以启用Conda activate
命令。不过我不确定。