| aliases | |||||||
|---|---|---|---|---|---|---|---|
| tags |
|
||||||
| created | 2023-08-18 12:44:52 -0700 | ||||||
| modified | 2025-10-22 16:28:07 -0700 |
关于 Python 版本更新及维护计划,可以查看:Status of Python versions。
Tip
Python 没有官方的 LTS 版本(Long-Term Support,长期支持),Python 每一个主版本的从release到EOF,整个生命周期是 5 年。
# 列出可以更新的包
pip list --outdated
# 更新指定的包
pip install --upgrade xxx
# 更新pip
pip install --upgrade pip
# 或 使用python -m 来更新pip
python -m pip install --upgrade pip
# 查看pip
pip show pip
# 卸载
python -m pip uninstall pip
# 重装
python -m ensurepip
[!info] 关于
command not found: pip在 Conda 中重装 pip,有可能出现找不到 pip 的情况。
那极有可能是使用的
python -m pip uninstall pip来装,而不是使用conda install pip命令来装。在 conda 环境中,使用 python 安装的 pip,执行命令是
pip3,不是pip,所以在 conda 环境中就有可能发现 pip 找不到的情况。如果在 conda 环境中重装 pip,先使用
conda install pip安装;然后再使用python -m ensurepip及python -m pip install --upgrade pip来「修复」。[!info] 相关资料
pip install 包名语法:
pip install git+<repo的https url>[!info]
github 地址后面有没有
.git都无所谓。
- 临时换源并安装指定包
pip install -i 源地址 some-package例:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名- 临时换源升级
pip
python -m pip install -i 源地址 --upgrade pip清华的镜像源每五分钟更新一次,大而全,推荐大家使用。
国内其他常用源:
- 清华:https://pypi.tuna.tsinghua.edu.cn/simple
- 阿里云:http://mirrors.aliyun.com/pypi/simple/
- 中国科技大学: https://pypi.mirrors.ustc.edu.cn/simple/
- 南京大学:https://mirror.nju.edu.cn/pypi/web/simple/
- 华中理工大学:http://pypi.hustunique.com/
- 山东理工大学:http://pypi.sdutlinux.org/
- 豆瓣:http://pypi.douban.com/simple/
- 第一种方式:
# 清华源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 南京大学源
pip config set global.index-url https://mirror.nju.edu.cn/pypi/web/simple
# 北大源
pip config set global.index-url https://mirrors.pku.edu.cn/pypi/web/simple
# 南阳理工源
pip config set global.index-url https://mirror.nyist.edu.cn/pypi/web/simple
# 齐鲁工业大学源
pip config set global.index-url https://pypi.qlu.edu.cn/simple
# 阿里源
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
# 腾讯源
pip config set global.index-url http://mirrors.cloud.tencent.com/pypi/simple
# 豆瓣源
pip config set global.index-url http://pypi.douban.com/simple/
Tip
配多个镜像源:pip config set global.extra-index-url "<url1> <url2>..."。
源地址间使用空格间隔。
pip config set global.extra-index-url "https://mirror.nju.edu.cn/pypi/web/simple https://mirrors.pku.edu.cn/pypi/web/simple https://pypi.mirrors.ustc.edu.cn/simple https://mirrors.aliyun.com/pypi/simple https://mirrors.cloud.tencent.com/pypi/simple https://mirror.nyist.edu.cn/pypi/web/simple https://pypi.qlu.edu.cn/simple"示例:
$ pip config set global.extra-index-url "https://mirror.nju.edu.cn/pypi/web/simple https://mirrors.pku.edu.cn/pypi/web/simple https://pypi.mirrors.ustc.edu.cn/simple https://mirrors.aliyun.com/pypi/simple https://mirrors.cloud.tencent.com/pypi/simple https://mirror.nyist.edu.cn/pypi/web/simple https://pypi.qlu.edu.cn/simple"
Writing to /home/silascript/.config/pip/pip.confTip
换源成功,会有 Writing to /home/xxx/.config/pip/pip.conf 的提示信息,就是 pip.conf 配置文件被修改,如果之前没配过,就会生成一个并将配置写入。
- 第二种方式:
直接修改 pip 配置文件
pip 的配置文件是放在 .pip 目录下的 pip.conf 文件中 (windows 是 pip.ini 文件)
示例:
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
Tip
现在的 pip,配置文件 pip.conf 是放在 ~/.config/pip/ 目录中(旧版的是放在 ~/.pip/ 目录下)。在 Conda 中配置 pip 也是放在这个目录中。
如果配多个源,各源地址间使用空格间隔,如下:
[global]
extra-index-url = https://mirror.nju.edu.cn/pypi/web/simple https://mirrors.pku.edu.cn/pypi/web/simple https://pypi.mirrors.ustc.edu.cn/simple https://mirrors.aliyun.com/pypi/simple https://mirrors.cloud.tencent.com/pypi/simple https://mirror.nyist.edu.cn/pypi/web/simple https://pypi.qlu.edu.cn/simple
cnpip 是一个快速切换源的小工具。
安装方式:
pipx install cnpippip install cnpip
功能:
cnpip list:列出可用的镜像源。cnpip set:自动选择最快的镜像源cnpip set 镜像名称:选择指定镜像源cnpip unset:取消镜像源设置,恢复默认源
Prodesire/chpip,与 cnpip 很像,但这个可以自行添加源。
安装方式:
pip install chpippipx install chpip也可以使用特有的 GitHub 方式安装:
pip install git+https://github.com/Prodesire/chpippipx install git+https://github.com/Prodesire/chpip主要功能:
-
list:列出支持的源。没什么卵用,这内置源只能看不能直接使用,得使用chpip set -n xxx -i xxx设置后才能使用。 -
show:当前使用的源 -
-n 源名称:切换指定名称的源 -
set -n 源名称 -i 源地址:内置的源如果不满意,可以自行添加源。需给出源名称和源地址。
列出内置的源:
chpip list,这个命令是到 github 上取 [pip.yml](https://raw.githubusercontent.com/Prodesire/chpip/main/pip.yml) 文件,这文件中记录了一些常用的源。
添加源示例:
$ chpip set -n nju -i https://mirror.nju.edu.cn/pypi/web/simpleSet Python package index with name `nju` successful.
$ chpip show
nju (https://mirror.nju.edu.cn/pypi/web/simple)在 pip 配置目录 ~/.config/.pip/ 目录下会生成一个 .chpip.yml 文件,这就是设置的源:
$ ll .config/pip
Permissions Size User Group Date Modified Name
drwxr-xr-x - silascript silascript 2025-08-16 20:38 .
drwx------ - silascript silascript 2025-08-16 17:10 ..
.rw-r--r-- 73 silascript silascript 2025-08-16 20:38 .chpip.yml
.rw-r--r-- 0 silascript silascript 2025-08-16 18:23 pip.conf
.rw-r--r-- 307 silascript silascript 2025-08-16 18:19 sources.dict
$ cat .config/pip/.chpip.yml
indexes:
nju:
index_url: https://mirror.nju.edu.cn/pypi/web/simple切换源示例:
# 就使用刚添加的南京大学的源 nju
$ chpip -n nju
# show下
$ chpip show
* nju (https://mirror.nju.edu.cn/pypi/web/simple)
default (https://pypi.org/simple)
# 还可以查看下pip.conf是否已经添加了源
$ cat .config/pip/pip.conf
[global]
index-url = https://mirror.nju.edu.cn/pypi/web/simple
# 切换回默认源
$ chpip -n default
#
$ cat .config/pip/pip.conf
[global]
index-url = https://pypi.org/simple
PyQuickInstall 与 cnpip 差不多的,能快速换源的小工具。不过这工具多了个添加源的功能。
安装方式:
pip install pqi
git clone https://github.com/yhangf/PyQuickInstall.git
python3 setup.py installpipx install pqi
主要功能:
pqi ls:列出所有支持的 pypi 源pqi use 源名称:改变 pypi 源pqi show:显示当前源pqi add 源名称 源地址:添加新源pqi remove 源名称:移除源
装完这工具,会有在 pip 的配置目录 ~/.config/pip 下生成一个「字典」:
$ ll .config/pip
Permissions Size User Group Date Modified Name
drwxr-xr-x - silascript silascript 2025-08-16 18:05 .
drwx------ - silascript silascript 2025-08-16 17:10 ..
.rw-r--r-- 0 silascript silascript 2025-08-16 11:37 pip.conf
.rw-r--r-- 256 silascript silascript 2025-08-16 18:05 sources.dict字典的大概内容:
$ cat .config/pip/sources.dict
���}�(�pypi��https://pypi.python.org/simple/��tuna��(https://pypi.tuna.tsinghua.edu.cn/simple��douban��!https://pypi.doubanio.com/simple/��aliyun��'https://mirrors.aliyun.com/pypi/simple/��ustc��+https://mirrors.ustc.edu.cn/pypi/web/simple�u.% [!info]
源都记录在这个字典中
添加一个新源:
$ pqi add nju https://mirror.nju.edu.cn/pypi/web/simple/
nju(https://mirror.nju.edu.cn/pypi/web/simple) is add to Source list.再查看字典:
$ cat .config/pip/sources.dict
��'}�(�pypi��https://pypi.python.org/simple/��tuna��(https://pypi.tuna.tsinghua.edu.cn/simple��douban��!https://pypi.doubanio.com/simple/��aliyun��'https://mirrors.aliyun.com/pypi/simple/��ustc��+https://mirrors.ustc.edu.cn/pypi/web/simple��nju��)https://mirror.nju.edu.cn/pypi/web/simple�u.% 示例:
- 设置源
$ tpip set aliyun
# Writing to /home/silascript/.config/pip/pip.conf
# Writing to /home/silascript/.config/pip/pip.conf
# 成功设置 pip 镜像源为 'https://mirrors.aliyun.com/pypi/simple',并添加 trusted-host 'mirrors.aliyun.com'# 查看pip.conf是否设置成功
$ cat .config/pip/pip.conf
[global]
index-url = https://mirrors.aliyun.com/pypi/simple
trusted-host = mirrors.aliyun.com
- 取消设置,恢复默认源
$ tpip unset
# Writing to /home/silascript/.config/pip/pip.conf
# Writing to /home/silascript/.config/pip/pip.conf
# 成功取消 pip 镜像源设置,已恢复为默认源由于 pip search 命令不能用,所以使用「pip_search」(原来叫「pip-search」)这个包来实现搜索功能。
# 安装 pip-search
# pip install pip-search
# 新的版本已经将名字修改成下划线了
pip install pip_search
# 使用 pip-search
# 使用这货时,得敲 pip_search 命令,而不是 pip-search
pip_search 要搜索的包
Tip
虽然安装时已经将名称修正为 pip_search,但安装成功后的信息仍显示旧的名称:pip-search:
$ pipx install pip_search
installed package pip-search 0.0.14, installed using Python 3.12.11
These apps are now globally available
- pip_search
done! ✨ 🌟 ✨新版本的 linux 发生版,避免 Python 包管理器与系统底层冲突,所以禁止 pip install。只能在「虚拟环境」中使用 pip。如果执行 pip install xxx,会报 externally managed environment 错误提示。
当然不怕死的,可以使用 --break-system-packages 这个选项,硬装。
pipdeptree 这个工具可以显示 pip 中各模块依赖「关系树」。有了这工具,删除模块时就可以更有「自信」了。
因为它是有入口程序,所以它是可以使用 pipx 安装的。
pip install pipdeptreepipdeptree:查看所有包依赖关系pipdeptree -p <package_name>:可以查看特定包的依赖关系pipdeptree -r -p <package_name>: 可以查看哪些包依赖于特定包
pip-autoremove 这工具在删除某模块时,把依赖的模块也一起「清理」了!
pip install pip-autoremovePython 有多种多样的虚拟环境,如 Virtualenv、自带的 venv,著名的 pipenv,还有最最流行的 conda。
Virtualenv 是 python2 到 python3 都能使用的一个虚拟环境。
从 python3.3 开始,就自带了一个虚拟环境:venv。
pipx 是一个自动建立虚拟环境来使用 Python 应用的工具。
pipx 与其他相近工具的比较:pipx comparisons
[!info] pipx 安装条件
pipx 需要 Python 3.6+ 才可以使用
pipx --help,可查看 pipx 相关信息:
Virtual Environment location is /home/silascript/.local/pipx/venvs.
Symlinks to apps are placed in /home/silascript/.local/bin.
optional environment variables:
PIPX_HOME Overrides default pipx location. Virtual Environments will be installed to
$PIPX_HOME/venvs.
PIPX_BIN_DIR Overrides location of app installations. Apps are symlinked or copied here.
PIPX_DEFAULT_PYTHON Overrides default python used for commands.
USE_EMOJI Overrides emoji behavior. Default value varies based on platform.
[!info] 关于 pipx 两个重要的目录
一个是 pipx 的为应用建立的虚拟环境目录,默认是在
.local/pipx,后来 Linux 系统应该是为了符合FHS规范(Filesystem Hierarchy Standard),将各软件的应用程序数据等目录调整到.local/share目录下,所以 pipx 的虚拟环境目录默认改为.local/share/pipx/venvs。就算是在 Conda 中使用其虚拟环境的 pip 安装的 pipx,这个 pipx 所装的模块,仍是存放在
~/.local/share/pipx/venvs/目录下。另一个是 pipx 中应用执行的
bin文件「链接文件」所在的目录,默认是在~/.local/bin下,这其实是跟 pip 一样的。同样的,在 Conda 的虚拟环境中使用的 pipx 装的模块的可执行程序,同样也是放在
~/.local/bin/。而这个程序只是一个link文件。(在~/.local/bin/目录中的那些可执行程序,其实都是些链接,它们都指向.local/share/pipx/venvs/目录下各模块,也就说在 conda 中使用 pipx 安装模块,这些模块安装根目录都是.local/share/pipx/venvs/,而执行链接都是~/.local/bin/目录,pipx 有非常强的「共享性」。)另外,在
~/.local/bin/下建立链接文件的好处还有,就是如果需要重装 pipx,并且在重装前肯定移除~/.local/pipx目录,在重装 pipx 后,又得把各模块再重装一次,,这时存在一个难题,就是该重装哪些模块,除非之前另外有记录,不然是有点麻烦的。但因为~/.local/bin/下「残留」有之前安装过的模块链接,而且因为~/.local/pipx/目录的移除,使得这些链接出现「指向」错误而在终端中「显红」,这就给该重装哪些模块提供了提示。如下图中,那些标红的,都是之前装的,后来
~/.local/pipx目录被移除后,残留的链接。也就说,在 Conda 中各虚拟环境用 pipx 装的相同模块,其可执行程序会出现同名冲突,会报:「already seems to be installed. 」的揭示,因为这个可执行程序是个 Link 文件,它可以指向不同虚拟环境,如果不同虚拟环境下装相同的模块,后来生成的这个模拟可执行的 Link 文件就会覆盖之前装的。
同样的也就意味着,不同虚拟环境下使用 pipx 装的模块,只要有一个虚拟环境装了,就可以在其他虚拟环境中使用,除非,这个在虚拟环境将此模块删除,或此虚拟环境本身就被删除。
所以得出一个重要的结论:pipx 装的模块在当前用户下,「全局性」更强,适合安装一些跨虚拟环境的模拟,如各种 LSP。
同时,因为 pipx 这种「穿透性」,也就意味着 pipx 没太大必要在 Conda 的虚拟环境中安装那些非「全局性」的模块。
[!tip] pipx 安装模块要求
pipx 只能装那些有「cli」的模块,对于那些纯库类型的模块,像 pynvim,就不能装。
pipx 可以使用 pip 来安装的:
pip install pipx
# 或者
python -m pip install --user pipx将 pipx 添加到 PATH 中,方便任何地方访问它:
pipx ensurepath[!tip] 相关资料
如果在 Conda 中不使用 pip 安装 pipx,可以直接使用 conda install 来安装,但前提是先将 conda-forget 在 conda 的 channel 中配置上了。不确定能不能用 conda 直接装,可以先搜索下:conda search --full --name pipx,如果能搜到,就通过 conda install pipx 进行安装。
安装过程相关信息:
added / updated specs:
- pipx
The following packages will be downloaded:
package | build
---------------------------|-----------------
argcomplete-1.12.3 | pyhd3eb1b0_0 35 KB https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
click-8.1.7 | py311h06a4308_0 221 KB https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
colorama-0.4.6 | py311h06a4308_0 36 KB https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
importlib-metadata-4.11.3 | py311h06a4308_0 42 KB https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
importlib_metadata-4.11.3 | hd3eb1b0_0 12 KB https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
packaging-23.1 | py311h06a4308_0 100 KB https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
pipx-1.2.1 | pyhd8ed1ab_0 48 KB conda-forge
userpath-1.7.0 | pyhd8ed1ab_0 17 KB conda-forge
zipp-3.11.0 | py311h06a4308_0 21 KB https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
------------------------------------------------------------
Total: 532 KB
The following NEW packages will be INSTALLED:
argcomplete anaconda/pkgs/main/noarch::argcomplete-1.12.3-pyhd3eb1b0_0
click anaconda/pkgs/main/linux-64::click-8.1.7-py311h06a4308_0
colorama anaconda/pkgs/main/linux-64::colorama-0.4.6-py311h06a4308_0
importlib-metadata anaconda/pkgs/main/linux-64::importlib-metadata-4.11.3-py311h06a4308_0
importlib_metadata anaconda/pkgs/main/noarch::importlib_metadata-4.11.3-hd3eb1b0_0
packaging anaconda/pkgs/main/linux-64::packaging-23.1-py311h06a4308_0
pipx conda-forge/noarch::pipx-1.2.1-pyhd8ed1ab_0
userpath conda-forge/noarch::userpath-1.7.0-pyhd8ed1ab_0
zipp anaconda/pkgs/main/linux-64::zipp-3.11.0-py311h06a4308_0
Proceed ([y]/n)? 使用 conda 直接安装 pipx,使用 conda list 查看包信息,可以看到该环境下的 pip 和 pipx 是同一级的:
pip 23.3 py311h06a4308_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
pipx 1.2.1 pyhd8ed1ab_0 conda-forge[!info] 不同安装方式存在异同
该环境下的 pip 下(使用
pip list命令查看),同样存在 pipx,这与在该环境下使用pip install pipx结果基本相同。使用
conda install pipx方式安装,其卸载也连同相关的依赖组件一并卸载,所以而使用 pip 安装的 pipx,在卸载时,只会卸载 pipx,其依赖不同一同卸载。如果使用
python -m pip install --user pipx命令安装,该环境下使用conda list是没有 pipx 的,只能在pip list查看到。推荐使用
conda install pipx方式安装 pipx。
Important
如果 conda 某环境更新 python 版本,那 pipx 最好使用 pipx reinstall-all 命令重新安装相应的模块,不然进行 pipx upgrade-all 时会报 FileNotFoundError: [Errno 2] No such file or directory 类似的错误。
使用 pipx 安装模块或应用,跟 pip 差不多。
pipx install 应用名使用 github 源码安装,跟 pip 安装包 中安装 github 的包方式类似,就是在 github 的地址前加上 git+
[!example] 示例
pipx install git+https://github.com/psf/black.git或者没有
.git结尾也是可以的,如:pipx install git+https://github.com/Prodesire/chpip
安装指定版本的模块:
pipx install package==version[!example]
这个模块可以认为是 pipx 必装的模块。
因为 pypisearch 这个模块功能是搜索模块。
pipx install pypisearch安装完 pypisearch 后,就可以使用其搜索模块:
pypisearch 模块名列出已安装的所有模块:
pipx list查看某模块的虚拟环境用了哪些包:
pipx runpip 模块名 listpipx run 模块名pipx upgrade 模块名升级所有模块:
pipx upgrade-all卸载域模块:
pipx uninstall 模块卸载所有模块:
pipx uninstall-all如果重装 conda 或另装环境,不想要之前使用 pipx 安装的模块,想要清理模块,可以进行以下步骤进行模块的清理:
~/.local/bin下使用pipx安装的模块都有一个链接文件,将这个链接文件删除
$ ll .local/bin
Permissions Size User Group Date Modified Name
drwxr-xr-x - silascript silascript 2025-08-15 20:36 .
drwx------ - silascript silascript 2024-04-21 10:50 ..
lrwxrwxrwx - silascript silascript 2025-02-18 21:44 blackd -> /home/silascript/.local/share/pipx/venvs/black/bin/blackd
lrwxrwxrwx - silascript silascript 2025-02-18 21:44 markdown_py -> /home/silascript/.local/share/pipx/venvs/markdown/bin/markdown_py
lrwxrwxrwx - silascript silascript 2025-02-18 21:44 mycli -> /home/silascript/.local/share/pipx/venvs/mycli/bin/mycli
lrwxrwxrwx - silascript silascript 2025-02-18 21:44 pipdeptree -> /home/silascript/.local/share/pipx/venvs/pipdeptree/bin/pipdeptree
lrwxrwxrwx - silascript silascript 2025-02-18 21:44 pygmentize -> /home/silascript/.local/share/pipx/venvs/pygments/bin/pygmentize
lrwxrwxrwx - silascript silascript 2025-02-18 21:44 pylsp -> /home/silascript/.local/share/pipx/venvs/python-lsp-server/bin/pylsp
lrwxrwxrwx - silascript silascript 2025-08-13 10:59 python3.10 -> /home/silascript/.local/share/uv/python/cpython-3.10.18-linux-x86_64-gnu/bin/python3.10
lrwxrwxrwx - silascript silascript 2025-08-13 02:31 python3.12 -> /home/silascript/.local/share/uv/python/cpython-3.12.11-linux-x86_64-gnu/bin/python3.12
lrwxrwxrwx - silascript silascript 2024-02-29 20:39 subl -> /opt/sublime_text/sublime_text
Tip
其中那些指向的目标路径中有 pipx/venvs 就是 pipx 安装的模块,将这些删除掉就好了。不要删错了,那些路径中有 uv 的,是 UV 安装的东西。
~/.local/share/pipx/venvs这个目录是模块实际的安装目录,将此目录清空,就能将 pipx 安装的所有模块都删除了
$ ll .local/share/pipx/venvs
Permissions Size User Group Date Modified Name
drwxr-xr-x - silascript silascript 2025-02-18 21:44 .
drwxr-xr-x - silascript silascript 2024-04-07 22:51 ..
drwxr-xr-x - silascript silascript 2025-02-18 21:44 autopep8
drwxr-xr-x - silascript silascript 2025-02-18 21:44 black
drwxr-xr-x - silascript silascript 2025-02-18 21:44 jedi-language-server
drwxr-xr-x - silascript silascript 2025-02-18 21:44 markdown
drwxr-xr-x - silascript silascript 2025-02-18 21:44 mdformat
drwxr-xr-x - silascript silascript 2025-02-18 21:44 mycli
drwxr-xr-x - silascript silascript 2025-02-18 21:44 pipdeptree
drwxr-xr-x - silascript silascript 2025-02-18 21:44 pygments
drwxr-xr-x - silascript silascript 2025-02-18 21:44 pypisearch
drwxr-xr-x - silascript silascript 2025-02-18 21:44 python-lsp-server
drwxr-xr-x - silascript silascript 2025-02-18 21:44 ruff
drwxr-xr-x - silascript silascript 2025-02-18 21:44 ruff-lsp
drwxr-xr-x - silascript silascript 2025-02-18 21:44 yapf
drwxr-xr-x - silascript silascript 2025-02-18 21:44 you-getUV 一个使用 Rust 编写的 Python 的项目工具。它包括了虚拟环境管理、项目的包依赖管理等功能。
[!quote]
An extremely fast Python package and project manager, written in Rust.
- 使用系统包管理器安装
以 ArchLinux 为例:
yay -S uvTip
通过系统包管理器安装的 uv,是不能通过 uv self update 命令进行自身升级的。
$ uv self update error: uv was installed through an external package manager, and self-update is not available. Please use your package manager to update uv.
- 使用 pip 安装
也可以使用 pip 安装:pip install uv
- 使用 pipx 安装
pipx inistall uv
- 在 conda 环境中安装
conda install uv -c conda-forge
Tip
或者在 Conda 环境中使用 pip 或 pipx 安装。
UV 配置分系统级别(system-level)、用户级别(user-level)、项目级别(project-level)。
项目级别配置文件优先级高于用户级别,用户级别优先级高于系统级。
系统及用户级别的配置文件必须是 uv.toml。
项目级别的配置文件,格式与 pyproject.toml 一样。
UV 的默认全局配置是放在用户目录下 ~/.config/uv/uv.toml 文件。没有就自己新建。
[!quote]
uv will also discover user-level configuration at
~/.config/uv/uv.toml(or$XDG_CONFIG_HOME/uv/uv.toml) on macOS and Linux, or%APPDATA%\uv\uv.tomlon Windows; and system-level configuration at/etc/uv/uv.toml(or$XDG_CONFIG_DIRS/uv/uv.toml) on macOS and Linux, or%SYSTEMDRIVE%\ProgramData\uv\uv.tomlon Windows.User-and system-level configuration must use the
uv.tomlformat, rather than thepyproject.tomlformat, as apyproject.tomlis intended to define a Python project.If project-, user-, and system-level configuration files are found, the settings will be merged, with project-level configuration taking precedence over the user-level configuration, and user-level configuration taking precedence over the system-level configuration. (If multiple system-level configuration files are found, e.g., at both
/etc/uv/uv.tomland$XDG_CONFIG_DIRS/uv/uv.toml, only the first-discovered file will be used, with XDG taking priority.)
在 .config 下创建相关的配置文件:
mkdir ~/.config/uv && vim ~/.config/uv/uv.tomluv 有两个镜像得配。
uv 可以像 pip 一样管理依赖,但是 uv 不会读取 pip 的配置,所以要单独设置镜像地址。
UV_INDEX 或 UV_DEFAULT_INDEX 这是配的 pypi 镜像,即执行 uv add 命令安装第三方包时的镜像。
UV_INDEX 可以配多个源,UV_DEFAULT_INDEX 只能有一个,是用来默认替代 pypi 源的。
这个配置可以在 uv.toml 中就可以直接配置,这属于用户级别的配置。当然也可以在项目中的 pyproject.toml 中配置。
以清华源为例,在 uv.toml 中配置:
[[index]]
url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple"
default = true如果在项目的 pyproject.toml 中配置:
[[tool.uv.index]]
url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple"
default = true除了在配置文件中配,也可以使用 uv add 命令时,添加入 --default-index 参数临时配置镜像:
uv add --default-index https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple requestsuv 下载 python 是通过 https://github.com/indygreg/python-build-standalone 项目的 releases 进行下载。
uv 本身提供了下载镜像参数 UV_PYTHON_INSTALL_MIRROR,即执行 uv python install xx 命令时用到的镜像。这个镜像是在你的系统各种 rc,如 bashrc、zshrc 等中配的。
南京大学的 Python 安装包镜像:https://mirrors.cernet.edu.cn/list/python-build-standalone
在 bashrc、zshrc 或各种 profile 中配置:
UV_PYTHON_INSTALL_MIRROR="https://mirrors.cernet.edu.cn/list/python-build-standalone"当然可以使用命令参数 --mirror 临时指定镜像来安装 python,例:
uv python install 3.13 -v --mirror https://mirrors.cernet.edu.cn/list/python-build-standalone当然如果南大的镜像哪天挂了,那只能使用 GitHub 的「各种魔法加速」了。
列出可用的 Python 版本:
uv python list安装 Python:
uv python install 版本号[!info]
使用
uv python install命令安装 python,会装在.local/share/uv/python这个目录下。而在 创建项目 时,如果没有指定 python 的版本,默认从这个目录找最新的 python 版本。
移除 Python:
uv python uninstall 版本号固定 Python 版本:
uv python pin 版本号查找已经安装的 Python 版本息:
uv python finduv run:运行脚本uv add --script:为脚本添加依赖uv remove --script:移除依赖
这组命令是以 uv tool 开头,或使用 uvx
uv tool install:全局安装工具uv tool uninstall:卸载工具uv tools list:列出已安装的工具uv tools update-shell:更新 Shell,使工具可执行文件生效。
创建或初始化项目:
uv initTip
如果 uv init 后没有东西,那就是初始化当前目录。如果带上一个字符串,那就是创建一个目录然后再初始化它。
$ uv init testuv
Initialized project `testuv` at `/home/silascript/DevWorkSpace/PythonExercise/testuv`创建或初始化后的项目根目录下,会生成两个重要文件:
.python-versoin:这个是记录当前项目 Python 的版本,此文件告诉uv在 创建虚拟环境 时使用的 Python 版本pyproject.toml:这个文件是用来定义项目的主要依赖,包括项目名称、版本、描述、支持的Python版本等信息
例:
# silascript @ (base) in ~/DevWorkSpace/PythonExercise/testuv on git:main x [1:39:29]
$ ll
Permissions Size User Group Date Modified Name
drwxr-xr-x - silascript silascript 2025-08-13 01:37 .
drwxr-xr-x - silascript silascript 2025-08-13 01:37 ..
.rw-r--r-- 5 silascript silascript 2025-08-13 01:37 .python-version
.rw-r--r-- 84 silascript silascript 2025-08-13 01:37 main.py
.rw-r--r-- 152 silascript silascript 2025-08-13 01:37 pyproject.toml
.rw-r--r-- 0 silascript silascript 2025-08-13 01:37 README.md
创建项目时,是可以指定 python 的版本:
uv init -p python版本号示例:
uv init testuv -p 3.11
# Initialized project `testuv` at `/home/silascript/DevWorkSpace/PythonExercise/testuv`uv 会根据它所可以找到的 Python 环境来执行,顺序大概是:
- 当前目录下的
.python-version文件内设定的版本 - 当前启用的虚拟环境
- 当前目录下
.venv目录内设定的虚拟环境 - uv 自己安装的 Python
- 系统环境设定的 Python 环境
在不指定 uv 的虚拟环境时,uv 使用的是 临时虚拟环境。
uv cache dir使用 uv venv 命令来创建虚拟环境:
使用 uv venv 命令,默认情况,会在当前目录下生成 .venv 目录作为虚拟环境目录。
当然可以指定虚拟环境目录的名称:uv venv p311,这样当前目录下就会生成一个 .p311 的目录,这就是虚拟环境目录。
当然在创建虚拟环境时,还可以指定虚拟环境使用 Python 的版本。
示例:
$ uv venv --python 3.11
# Using CPython 3.11.13
# Creating virtual environment at: .venv
# Activate with: source .venv/bin/activateTip
如果 uv venv 不显式指定 Python 版本,那会根本目录下的 .python-version 文件中给定的版本自动指定虚拟环境的 Python 版本
$ cat .python-version
3.11
$ uv venv
Using CPython 3.11.13
Creating virtual environment at: .venv
Activate with: source .venv/bin/activate
.venv/bin 目录结构:
$ ll .venv/bin
Permissions Size User Group Date Modified Name
drwxr-xr-x - silascript silascript 2025-08-13 03:10 .
drwxr-xr-x - silascript silascript 2025-08-13 03:10 ..
.rw-r--r-- 4.1k silascript silascript 2025-08-13 03:10 activate
.rw-r--r-- 2.7k silascript silascript 2025-08-13 03:10 activate.bat
.rw-r--r-- 2.7k silascript silascript 2025-08-13 03:10 activate.csh
.rw-r--r-- 4.2k silascript silascript 2025-08-13 03:10 activate.fish
.rw-r--r-- 3.9k silascript silascript 2025-08-13 03:10 activate.nu
.rw-r--r-- 2.8k silascript silascript 2025-08-13 03:10 activate.ps1
.rw-r--r-- 2.4k silascript silascript 2025-08-13 03:10 activate_this.py
.rw-r--r-- 1.7k silascript silascript 2025-08-13 03:10 deactivate.bat
.rw-r--r-- 1.2k silascript silascript 2025-08-13 03:10 pydoc.bat
lrwxrwxrwx - silascript silascript 2025-08-13 03:10 python -> /home/silascript/.local/share/uv/python/cpython-3.11.13-linux-x86_64-gnu/bin/python3.11
lrwxrwxrwx - silascript silascript 2025-08-13 03:10 python3 -> python
lrwxrwxrwx - silascript silascript 2025-08-13 03:10 python3.11 -> python
[!info]
可以看到,
.venv/bin中创建了几个 python 的链接文件python3.11、python3和python,最终都是指向.local/share/uv/python下具体的 python 可执行文件。大致可以看到 uv 项目使用到的虚拟环境与uv python命令的关系。
Pixi 是新一代的包管理器。
结巴分词 是一个 Python 的中文分词组件。
Obsidan 中 中文分词插件 就有可能用到这个组件。
Pycharm 跟 Idea 一样,都是 JetBrains 旗下的一款 IDE。
以 Linux 版本安装为例。
Pycharm 的 Desktop:
[Desktop Entry]
Version=1.0
Type=Application
Name=Pycharm 2025
Icon=pycharm.png
Exec=/opt/pycharm/bin/pycharm
Comment=The Python IDE
Categories=Development;IDE;
Terminal=false
StartupWMClass=jetbrains-pycharm破解跟 Idea 类似,可以到 https://blog.idejihuo.com 找相关资源。
Tip
注意,激活时,用的是 pycharm64.vmoptions 这个配置文件指定激活工具路径,而非默认的 pycharm.vmoptions。
