国内默认下载pip速度都比较慢,但是可以用脚本切换国内的下载源,这样就可以轻松下载pip了。
国内pip镜像源
目前国内靠谱的 pip 镜像源有:
清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科技大学 :https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣:http://pypi.douban.com/simple/
(pip默认镜像地址:https://pypi.org/simple
切换下载源方法
个人PC机,建议永久换源。
-1 首先按下Windows+e键,然后在文件地址栏输入:%APPDATA% 回车,快速进入 C:\Users\电脑用户\AppData\Roaming 文件夹中
-2 新建 pip 文件夹并
-3 在文件夹中新建 pip.ini 配置文件
-4 配置文件写入:
如果想换源就直接把源的路径换了就可以了
[global] index-url = https://mirrors.aliyun.com/pypi/simple [install] use-mirrors =true mirrors =https://mirrors.aliyun.com/pypi/simple trusted-host =mirrors.aliyun.com
# 以后再命令行中,下载模块,就会走国内源了
pip3.8 install django==3.2.12
如果想多添加几个源,可以在pip.ini中配置以下信息。
一键换源脚本
带界面的,适合小白,点击一键换源。
如果脚本无法执行,请pip install nicegui(代码已经实现了自动安装)
import subprocess import sys def install_module(module_name): try: __import__(module_name) # print(f"{module_name} 已经安装成功") except ImportError: print(f"尝试通过 pip 安装 {module_name}") subprocess.check_call([sys.executable, '-m', 'pip', 'install', module_name]) __import__(module_name) print(f"{module_name} 安装结束") except subprocess.CalledProcessError as e: print(f"命令执行失败,返回码:{e.returncode}") # print(f"标准输出:\n{e.stdout}") # print(f"标准错误输出:\n{e.stderr}") # 使用你需要的模块名替换 "nicegui" install_module("nicegui") from nicegui import ui, app source_urls = { "清华源": "https://pypi.tuna.tsinghua.edu.cn/simple", "阿里云镜像源": "http://mirrors.aliyun.com/pypi/simple/", "中国科学技术大学镜像源": "https://pypi.mirrors.ustc.edu.cn/simple/", "豆瓣源": "http://pypi.douban.com/simple/" } def set_pip_source(source_url): print(f"设置 pip 源为: {source_url}") subprocess.run(["pip", "config", "set", "global.index-url", source_url]) ui.notify(f"设置 pip 源为: {source_url}", type='positive', position="center") def reset_pip_source(): print("还原 pip 默认源") subprocess.run(["pip", "config", "unset", "global.index-url"]) ui.notify("设置为默认源", type='positive', position="center") ui.label("点击下面的按钮设置相应的国内pip源").style('color: red; font-size: 200%; font-weight: 300') for k,v in source_urls.items(): ui.button(k, on_click=lambda url=v: set_pip_source(url)) ui.button('默认设置', on_click=lambda: reset_pip_source()) ui.run(title='设置pip源', language='zh-CN')