未安装requests时,如何导入未预装的networkx和matplotlib模块?
可行的实现方式
方法一:用Python自带的urllib下载安装
urllib是Python标准库,无需额外安装,直接用它下载库的安装包,再通过pip完成安装:
import urllib.request import subprocess import sys # 下载networkx的对应版本wheel包(需匹配目标机器的Python版本和系统) urllib.request.urlretrieve( "https://files.pythonhosted.org/packages/ed/2b/71a7325f119d7b49e17d7045e88b2f6125f2f9997b22f0e7b4f1b577b451/networkx-3.1-py3-none-any.whl", "networkx.whl" ) # 下载matplotlib的对应版本安装包 urllib.request.urlretrieve( "https://files.pythonhosted.org/packages/3f/5c/5550f8c5b490e63740d9b5471f704d54c5a2f41c7f6d13f82a9b35f4b3a0/matplotlib-3.7.2-cp311-none-win_amd64.whl", "matplotlib.whl" ) # 调用pip安装下载好的包 subprocess.check_call([sys.executable, "-m", "pip", "install", "networkx.whl"]) subprocess.check_call([sys.executable, "-m", "pip", "install", "matplotlib.whl"])
提醒下:要根据目标机器的Python版本、操作系统(Windows/Linux/macOS)选择对应的wheel包,否则会安装失败,包版本信息可在Python官方包索引平台查询。
方法二:离线拷贝安装包手动安装
如果目标机器完全无法联网,这是最稳妥的方式:
- 在能联网的电脑上,执行
pip download networkx matplotlib命令,该命令会自动下载networkx、matplotlib及其所有依赖的安装包到当前目录 - 把所有下载的
.whl或.tar.gz文件拷贝到目标机器的任意文件夹中 - 在目标机器的终端中进入该文件夹,执行
pip install --no-index --find-links=. networkx matplotlib,即可完成离线安装所有依赖
方法三:先安装requests再用它下载
要是仍想使用requests的思路,可以先通过urllib安装requests,再用requests操作:
import urllib.request import subprocess import sys # 先下载requests的安装包 urllib.request.urlretrieve( "https://files.pythonhosted.org/packages/9d/be/10918a2eac4ae9f02f6cfe6414b7a155ccd8f7f9d4380d62fd5b955065c3/requests-2.31.0-py3-none-any.whl", "requests.whl" ) # 安装requests subprocess.check_call([sys.executable, "-m", "pip", "install", "requests.whl"]) # 现在可以导入requests下载其他库 import requests # 后续编写下载networkx和matplotlib的逻辑即可
内容的提问来源于stack exchange,提问作者darkmount
相关产品推荐
相关产品推荐

