![](/img/trans.png)
[英]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.