远程安装 python 和 pip 包

远程安装 python 和 pip 包

我正在尝试使用 powershell 在 Azure VM 上远程安装带有 pip 包的 python。部署到 VM 的脚本:

Start-Process 'F:\python-3.9.5-amd64.exe'-ArgumentList ("/passive", "InstallAllUsers=1", "PrependPath=1", "Include_test=0", "Include_pip=1") -Wait
Start-Sleep -s 120
& pip install urllib3 --no-index --find-links 'F:\urllib3-1.26.5-py2.py3-none-any.whl'
& pip install selenium --no-index --find-links 'F:\selenium-3.141.0-py2.py3-none-any.whl'

Python 在 Program Files 中正确安装,并添加了环境变量,但pip无法识别。

我尝试在脚本 ( set/ setx..) 中为 Python 和 Scripts 文件夹设置环境变量,但无济于事。如果我通过 RDP 连接到机器,机器pip会被识别,并且软件包安装正确。python也无法被识别(已尝试python -m pip install ...)。

为什么 pip 无法被识别?

答案1

您的脚本执行了安装,但没有在安装和执行之间刷新环境pip。因此,pip在路径中找不到可执行文件。

检索值$env:PATH并添加自定义路径

$scriptblock = { 
    $env:computername
    [Environment]::GetEnvironmentVariable("Path","Machine")
    # add pip path to $env:path variable temporarily
    $env:path += ";c:\whatever\pip"
    # run pip here
    python -m pip install package 
}
Invoke-Command -ComputerName mycomputer -ScriptBlock $scriptblock

注意巧克力味可能是安装软件的更好方法;它还提供了refreshenv重新加载环境变量的命令。

相关内容