软件测试|教你轻松解决pip安装下载超时问题

文章介绍了pip安装Python第三方库时遇到的下载超时问题,原因在于默认使用境外下载源。为解决此问题,文章提供了多个国内镜像源,如清华大学、豆瓣、阿里云和中国科学技术大学。临时解决方案是通过`pipinstall`命令指定国内源,而永久修改则需要在Windows系统中创建pip配置文件并设置镜像源。此外,文章还提到了在Pycharm中为项目添加镜像源的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

前言

pip是我们最常用的Python第三方库安装工具,不管是什么库,我们只需要一条pip install命令就能安装,但是现在经常出现一些安装超时的问题,这是为什么呢?

因为pip默认是从Python官方的下载源下载安装第三方库,Python官方下载源是境外的网址,所以会出现下载超时的问题,那么我们怎么才能完全解决这个问题呢?

我们添加上我们境内的网址就可以解决这个问题了。

国内下载源

目前主要使用的国内下载页有下列几个:

https://pypi.tuna.tsinghua.edu.cn/simple/   # 清华
http://pypi.doubanio.com/simple/  # 豆瓣
http://mirrors.aliyun.com/pypi/simple/  # 阿里云
https://pypi.mirrors.ustc.edu.cn/simple/ # 中国科学技术大学

临时修改源

我们知道pip 的-i参数可以设置下载的镜像源,我们在安装库的时候,加上这个参数指定我们的境内源就可以解决这个问题。

pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple

C:\Users\89703>pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting selenium
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/d9/4c/d18374c7652b575c93838ffa728415826ae6108156b65e96344922130e9e/selenium-4.8.0-py3-none-any.whl (6.3 MB)
     ---------------------------------------- 6.3/6.3 MB 2.4 MB/s eta 0:00:00-----------------------------

我们可以看到下载速度还是相当快的,详细如下图所示

在这里插入图片描述

永久修改下载源

安装第三方库时指定下载源的话,操作较为麻烦,每一次下载都需要我们加上镜像源,我们需要一个一劳永逸的方法来解决问题,永久修改下载源。下面我们以Windows系统为例,进行永久修改镜像源的操作。

在应用存储数据目录创建pip目录,并且创建一个pip.ini文件,文件内容如下所示:

[global]
timeout =  6000
index-url = https://pypi.tuna.tsinghua.edu.cn/simple/
trusted-host = pypi.tuna.tsinghua.edu.cn

如下图所示:

在这里插入图片描述

重启启动终端,使用pip进行安装numpy:

PS G:\projects\python\pythonNotes> pip install numpy
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple/
Requirement already satisfied: numpy in c:\users\administrator\appdata\local\programs\python\python37\lib\site-packages (1.21.6)
PS G:\projects\python\pythonNotes> pip install virtualenv
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple/
Collecting virtualenv
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/fd/76/c99d37939e17e3c53f1c1b7e4f5365a9160b1cd0b37700657eed9a2a6775/virtualenv-20.16.7-py3-none-any.whl (8.8 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.8/8.8 MB 373.4 kB/s eta 0:00:00

Pycharm添加镜像源

更多时候,我们的项目都是依赖虚拟环境的,并不需要在自己本地安装第三方库,因此,我们更多是针对每一个项目去安装对应的库,所以我们在pycharm里也需要添加镜像源,方便我们的使用。

  1. settings->Python Interpreter->‘+’->Manage Repositories

1.进入Python解释器列表
2.点击添加解释器
3.管理镜像源
4.添加镜像源

在镜像源地址输入栏里输入地址,依次点击OK即可
在这里插入图片描述

在这里插入图片描述
添加成功,如下图所示。
在这里插入图片描述

  1. 新版本的pycharm已经取消了settings里的添加镜像源功能,我们还可以按照这个步骤添加镜像源,如下图所示

在这里插入图片描述
添加具体镜像源的步骤与上面的方法一致。

注:Mac电脑通用第二种方法添加镜像源。

总结

pip修改镜像源的方法就介绍到这里了,大家在使用pip的过程中还遇到了哪些问题,可以给我留言,期待大家的回复!

更多技术文章

视频干货合集

2024最新Python3.1x软件测试开发必备语法基础讲解

7天软件测试快速入门教程

测试开发精品公开课合集

测试开发/自动化测试/性能测试/精准测试/测试左移/测试右移/人工智能测试

大厂面试真题解析

JMeter实时性能监控平台


另免费赠送软件测试开发方面的专业资料包!助您事半功倍,提升技能,把握职场先机。

软件测试职业发展
在这里插入图片描述
零基础入门
在这里插入图片描述

测试必备编程篇
在这里插入图片描述
自动化测试
在这里插入图片描述
性能测试
在这里插入图片描述
测试管理
在这里插入图片描述
工程效能篇
在这里插入图片描述
面试求职篇

软件测试的面试宝典,内含一线互联网大厂面试真题、面试技巧、软件测试面试简历指导,免费领取!
在这里插入图片描述

### Spring Boot 实现 OSS 文件上传 #### 1. 添加依赖项 为了在Spring Boot项目中实现OSS文件上传功能,首先需要引入必要的Maven或Gradle依赖。对于阿里云OSS来说,可以在`pom.xml`文件中加入如下依赖: ```xml <dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-oss</artifactId> <version>3.10.0</version> </dependency> ``` 此部分确保了应用程序能够访问并调用阿里云提供的SDK接口来完成文件的操作。 #### 2. 配置参数设置 接着,在项目的application.yml或application.properties配置文件内指定连接到特定区域下的Bucket所需的信息,包括但不限于Endpoint、Access Key ID 和 Secret等认证凭证[^3]。 ```yaml aliyun: oss: endpoint: https://oss-cn-beijing.aliyuncs.com accessKeyId: LTAI5tGxXXXXXXXXXX accessKeySecret: XXXXXXXX9vHn8mLqkQxxxxxxxxxxxxxx bucketName: test-bucket-name ``` 以上配置指定了目标存储空间的位置和服务地址,同时提供了身份验证所需的密钥信息以便后续操作时使用。 #### 3. 创建Service层逻辑处理类 定义一个名为`FileUploadService.java`的服务类用于封装具体业务流程,比如初始化客户端实例、执行上传动作以及关闭资源释放等功能模块。以下是该类的一个简单实现方式: ```java import com.aliyun.oss.OSS; import com.aliyun.oss.OSSClientBuilder; public class FileUploadService { private final String endpoint; private final String accessKeyId; private final String accessKeySecret; private final String bucketName; public FileUploadService(String endpoint, String accessKeyId, String accessKeySecret, String bucketName) { this.endpoint = endpoint; this.accessKeyId = accessKeyId; this.accessKeySecret = accessKeySecret; this.bucketName = bucketName; } /** * 将本地路径指向的文件上传至指定bucket下,并返回其URL链接 */ public String uploadFileToOss(MultipartFile file) throws IOException { try (OSS client = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret)) { InputStream inputStream = file.getInputStream(); ObjectMetadata metadata = new ObjectMetadata(); metadata.setContentType(file.getContentType()); PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, file.getName(), inputStream); putObjectRequest.setMetadata(metadata); client.putObject(putObjectRequest); // 执行上传命令 return "https://" + bucketName + "." + endpoint.replace("http://", "") + "/" + file.getName(); // 返回外网可访问url } } } ``` 这段代码展示了如何通过Java API与阿里云OSS交互,实现了基本的文件上传过程。注意这里假设传入的是一个多部件形式的数据流(`MultipartFile`),这通常是从HTTP请求体中获取而来。 #### 4. 控制器方法编写 最后一步是在控制器(Controller)层面暴露RESTful风格API给前端调用者,允许他们提交待上传的内容。下面是一个简单的例子展示怎样接收POST请求并将接收到的文件传递给之前创建好的service来进行实际传输工作: ```java @RestController @RequestMapping("/api/files") public class FileController { @Autowired private FileUploadService fileUploadService; @PostMapping(value="/upload", consumes="multipart/form-data") public ResponseEntity<String> handleFileUpload(@RequestParam("file") MultipartFile file){ if (!file.isEmpty()) { try { String url = fileUploadService.uploadFileToOss(file); return ResponseEntity.ok(url); } catch (IOException e) { log.error(e.getMessage(),e); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null); } }else{ return ResponseEntity.badRequest().body("Please select a valid file."); } } } ``` 上述片段说明了一个典型的Web MVC模式下的处理器函数设计思路——它负责解析来自用户的输入数据并通过适当的方式响应对方;如果一切顺利,则会给出新生成的对象位置作为反馈;反之则报告错误详情。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值