Powershell

遠端安裝 python 和 pip 包

  • June 29, 2021

我正在嘗試使用 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. 因此,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

請注意,Chocolatey可能是安裝軟體的更好方法;它還提供了一個refreshenv重新載入環境變數的命令。

引用自:https://serverfault.com/questions/1066094