python - 无法从脚本自动安装 python 包
问题描述
我需要直接从脚本安装 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 也没有解决这个问题。
解决方案
推荐阅读
- javascript - 如何在 Chartjs 的 xAxe 上仅显示 2 个数字,图表上的数字超过两个?(折线图)
- python - ImportError:无法导入名称“UserAgentMixin”
- ssas - 无法从位于 Olap\Data\ 的文件/文件夹中恢复 SSAS 多维数据集
- python - 在 keras 中构建模型
- java - 读取 n,求 M 的值,其中 M = 2 * 4 * 6 * … * ≤ n
- c# - 如何使用 C# Web 客户端下载较大的 SharePoint 文件
- python - 有没有更快的方法来做到这一点?
- javascript - 如何在节点 js 中等待 writeFile 或 createWriteStream 函数完成?
- spring - com.demo.service.NmpAppService 中构造函数的参数 0 需要一个名为“entityManagerFactory”的 bean,但无法找到
- asp.net-core - 我尝试增加程序集文件版本和未找到程序集信息,