[英]How to automatically install required packages from a python script as necessary?
[英]Unable to automatically install python packages from script
我需要直接從腳本安裝 Python 包。 我知道這通常被視為不好的做法,但腳本需要完全獨立。 我嘗試了這個我覺得很方便的選項:
import subprocess
import sys
list_of_packages=['package_1', 'package_2', ... 'package_n']
def install(package):
subprocess.check_call([sys.executable, "-m", "pip", "install", package]
for package in list_of_packages:
install(package)
這適用於安裝了Python 3.8.3
的機器。 但是,當我嘗試在另一台安裝了Python 3.10.0
機器上執行腳本時,出現以下錯誤:
subprocess.CalledProcessError: Command '['[PYTHONPATH]\\pythonw.exe', '-m', 'pip', 'install', 'package_1']' returned non-zero exit status 2.
我不明白這是由於不同的 Python 版本(也許subprocess
和sys
模塊已被修改)還是我的舊機器中是否有其他模塊使其工作( Python 3.10.0
最近剛剛安裝)在新機器中並且尚未安裝任何外部軟件包)。
編輯:在@Passi 的回答之后,我嘗試重新安裝 Python 並選中所需的框以將 pip 添加到PATH
變量。 不幸的是,這不起作用。 我可以在命令提示符下手動安裝軟件包:
python -m pip install 'package_name'
但是當我從 IDLE 或命令提示符運行腳本時,我總是遇到相同的錯誤。 將 pip 更改為 pip3 也無法解決此問題。
我設法通過降級到 Python 3.8 解決了這個問題。 某些軟件包與 Python 3.10 之間似乎存在沖突。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.