有两种换源方式,全局源或虚拟环境源,区别在于:
全局源设置好一劳永逸,后续建立新的虚拟环境不需要重新配置。
虚拟环境源可以在不同的虚拟环境中使用不同的源,更加灵活,但一般情况下用不到,大多用于测试PyPI测试平台上的源
全局源
如果你希望只用设置一次镜像源,后续在创建新项目时不需要重新配置镜像,可以如此操作
推荐使用poetry-plugin-pypi-mirror
插件,可以方便地给poetry换源
第一步:添加poetry插件poetry-plugin-pypi-mirror
如果你使用的是poetry官方推荐的pipx方案安装的poetry,可以利用pipx安装此插件:
pipx inject poetry poetry-plugin-pypi-mirror
如果你使用的是pip安装的poetry,或直接使用官方提供的shell脚本(powershell/bash/zsh/fish)在系统中安装的poetry,可以通过poetry的self add添加插件
poetry self add poetry-plugin-pypi-mirror
这样就将poetry全局源插件安装上了
第二步:修改插件的默认源
假设我们现在需要添加腾讯的镜像源到poetry:https://mirrors.cloud.tencent.com/pypi/simple/
方法一:添加配置文件(⭐推荐)
新建或修改配置文件 config.toml
,根据不同的系统,在不同的目录下创建poetry-plugin-pypi-mirror
插件的配置文件
Windows系统:
%APPDATA%\pypoetry\config.toml
Linux系统
~/.config/pypoetry/config.toml
Mac系统:
~/Library/Preferences/pypoetry/config.toml
[plugins]
[plugins.pypi_mirror]
url = "https://mirrors.cloud.tencent.com/pypi/simple/"
方法二:添加系统环境变量(修改不如上种方式方便)
Linux系统环境变量
在终端中执行以下命令,可以对当前终端会话生效,但重启终端或系统后失效
export POETRY_PYPI_MIRROR_URL=https://mirrors.cloud.tencent.com/pypi/simple/
或是添加系统级环境变量,终端在每次打开时会自动加载环境变量:
vim /etc/profile
POETRY_PYPI_MIRROR_URL=https://mirrors.cloud.tencent.com/pypi/simple/
export POETRY_PYPI_MIRROR_URL
source /etc/profile
Windows系统环境变量
此电脑->右键属性->高级系统设置->高级->环境变量添加变量名POETRY_PYPI_MIRROR_URL,值为https://mirrors.cloud.tencent.com/pypi/simple/
虚拟环境源
如果你想让源仅在单个的虚拟环境中生效,可以如此操作
设置虚拟环境源不需要使用插件,官方的设置文档有详细操作:https://python-poetry.org/docs/repositories/
在项目中指定备用源
编辑项目根目录下的 pyproject.toml
文件,增加或修改 [tool.poetry.source]
部分,例如使用清华大学的镜像:
[tool.poetry.source]
name = "pypi-tuna"
url = "https://pypi.tuna.tsinghua.edu.cn/simple"
priority = "primary"
这里设置 priority = "primary"
即表示该源为首选源,覆盖默认的pypi源
使用命令行添加或切换源
你可以使用 poetry source
命令添加新的源,然后安装依赖时指定使用该源。例如:
poetry source add pypi-tuna https://pypi.tuna.tsinghua.edu.cn/simple
poetry install --source pypi-tuna
完成检验
修改完成后,切换回项目的poetry环境,执行poetry install 或 poetry update 查看是否成功
1