当前位置: 首页 > news >正文

【Python】venv:配置独立镜像源

为某个特定的 venv 虚拟环境设置 pip 镜像源,使得该环境下的 pip 安装始终使用自定义镜像源,不影响系统 pip,也不依赖用户级配置文件

环境准备

1. 创建虚拟环境

python -m venv venv

2. 激活虚拟环境

  • Windows:

    .\venv\Scripts\activate
    
  • Linux/macOS:

    source venv/bin/activate
    

配置镜像源

方法一:直接在虚拟环境中配置

  1. 创建配置文件:

    • Linux/macOS:

      nano venv/pip.conf
      
    • Windows:

      notepad venv/pip.ini
      
  2. 添加以下内容(以清华源为例):

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

方法二:项目级配置

  1. 在项目根目录创建配置文件:

    ./.config/pip/pip.conf  # Linux/macOS
    .\.config\pip\pip.ini   # Windows
    
  2. 添加同样的配置内容

  3. 设置环境变量指向该配置:

    • Linux/macOS:

      export PIP_CONFIG_FILE=./.config/pip/pip.conf
      
    • Windows:

      set PIP_CONFIG_FILE=.\.config\pip\pip.ini
      

验证配置

激活虚拟环境后执行:

pip config list

预期输出:

global.index-url='https://pypi.tuna.tsinghua.edu.cn/simple'

测试安装

pip install requests

观察下载源是否为配置的镜像地址。

配置优先级说明

pip 会按以下顺序查找配置:

  1. PIP_CONFIG_FILE 环境变量指定的文件
  2. 当前目录下的 pip.conf/pip.ini
  3. 虚拟环境目录下的 pip.conf/pip.ini
  4. 用户级配置(~/.pip/pip.conf%APPDATA%\pip\pip.ini
  5. 系统级配置(/etc/pip.conf

常用镜像源

镜像名称URL
清华https://pypi.tuna.tsinghua.edu.cn/simple
阿里云https://mirrors.aliyun.com/pypi/simple/
腾讯云https://mirrors.cloud.tencent.com/pypi/simple
华为云https://repo.huaweicloud.com/repository/pypi/simple
豆瓣https://pypi.doubanio.com/simple/

故障排除

如果配置未生效:

  1. 确认虚拟环境已激活
  2. 检查配置文件路径是否正确
  3. 验证配置文件语法(特别是 Windows 的 .ini 格式)
  4. 使用 pip config list -v 查看详细配置加载情况
http://www.dtcms.com/a/277212.html

相关文章:

  • 常用的docker命令备份
  • 007_用例与应用场景
  • python 列表(List) vs. 元组(Tuple):什么时候该用不可变的元组?它们在性能和用途上有什么区别?
  • 暑期自学嵌入式——Day01(C语言阶段)
  • 协程的基本使用
  • 【保姆级图文详解】MCP架构(客户端-服务端)、三种方式使用MCP服务、Spring AI MCP客户端和服务端开发、MCP部署方案、MCP安全性
  • 基于 CentOS 7 的 LVS+DR+Web+NFS 旅游攻略分享平台部署
  • CentOS系统下前后端项目部署攻略
  • 从 Manifest V2 升级到 Manifest V3:常见问题与解决方案
  • vue-component
  • [Linux入门 ] RAID存储技术概述
  • (S4)Efficiently Modeling Long Sequences with Structured State Spaces论文精读(逐段解析)
  • [Rust 基础课程]Hello World
  • 数据结构 单链表(2)--单链表的实现
  • 聊一聊Java生态接口测试常见的框架
  • 在 Spring Boot 中使用 MyBatis 的 XML 文件编写 SQL 语句详解
  • MySQL SQL语句精要:DDL、DML与DCL的深度探究
  • Design Compiler:什么是代价函数(Cost Function)
  • HarmonyOS组件/模板集成创新活动-元服务小云体重管理引入案例(步骤条UI组件)
  • python赤道上空的大气环流剖面图(纬向-高度剖面)
  • 多级@JsonTypeInfo和@JsonSubTypes注解使用详解及场景分析
  • 剑指offer59_翻转单词顺序
  • Redis 命令总结
  • Docker三剑客
  • Docker 基于 Cgroups 实现资源限制详解【实战+源码】
  • 从一个想法到一套软件——我的AI质检平台设计蓝图
  • 03.Python 字符串中的空白字符处理
  • 【爬虫】02 - 静态页面的抓取和解析
  • HTTP与HTTPS详解
  • 面试150 填充每个节点的下一个右侧节点指针Ⅱ