如何在Linux系统上无需安装即可本地使用Python requests模块
解决方案
方案1:打包requests及其纯Python依赖到提交目录
requests本身和它的所有依赖都是纯Python实现,无C扩展模块,完全可以直接将源码放到你的提交文件夹内直接导入,不需要执行任何安装操作。
具体操作步骤
- 在你自己的设备上新建一个名为
vendor的文件夹,用于存放第三方库源码 - 执行命令下载requests和所有依赖的源码包:
pip download requests --dest ./vendor --no-binary :all: - 将下载到的所有
.tar.gz压缩包全部解压,把每个包解压后根目录下的核心源码文件夹(比如requests包解压后的requests文件夹、urllib3包解压后的urllib3文件夹等)直接放到vendor根目录,不需要保留压缩包或者带版本号的上层文件夹 - 在你的业务代码最开头添加以下代码,将
vendor目录加入Python导包路径:import sys from pathlib import Path sys.path.insert(0, str(Path(__file__).parent / "vendor")) import requests - 本地测试直接运行你的代码,确认不需要全局安装requests也能正常运行后,将整个文件夹提交即可。
方案2:用标准库替代requests的基础功能
如果你的作业只用到了requests的基础GET/POST请求、没有复杂的会话管理、代理配置等功能,可以直接用Python标准库自带的urllib.request实现对应逻辑,完全不需要引入第三方库。
简单替代示例
- requests实现GET请求的代码:
resp = requests.get("https://example.com", params={"a":1}, headers={"User-Agent":"test"}) status_code = resp.status_code text = resp.text json_data = resp.json() - 对应标准库实现代码:
import urllib.request import urllib.parse import json url = "https://example.com?" + urllib.parse.urlencode({"a":1}) req = urllib.request.Request(url, headers={"User-Agent":"test"}) with urllib.request.urlopen(req) as resp: status_code = resp.getcode() text = resp.read().decode() json_data = json.loads(text)
注意事项
- 方案1不需要修改你已有的业务代码逻辑,仅需添加导包路径配置,适配成本最低
- 下载依赖时注意选择和目标机器Python3版本兼容的包版本,避免出现导入报错
- 不需要提交
__pycache__缓存文件,不影响运行还会占用额外空间
内容的提问来源于stack exchange,提问作者Dyskord
相关产品推荐
相关产品推荐

