Skip to content

uv 管理虚拟环境时的解释器路径

2025-11-19 · undefined · undefined

昨天重新跑了一次两个月前的实验脚本,莫名其妙报错了。什么都没有修改过,路径是正确的,虚拟环境也是正确的,但就是提示某个 module 找不到。

今天早上和服务器的管理员反馈了一下,原来是服务器的系统升级了,python 默认解释器也更新了。起先我用uv venv -python 3.10创建虚拟环境时,由于彼时的服务器默认 python 解释器是 3.10,于是就把虚拟环境中的 python 链接到了usr/bin/python,然而这个目录对于不同的服务器对应的是不同的解释器,因而在更换服务器或系统升级后会造成不一致性。

因此,最妥善的办法是把解释器总是安装到~目录下,即由uv托管的目录,默认为~/.local/share/uv/python/,这样哪怕服务器升级,以同一身份登录时,也总是访问固定的目录,从而避免了这种冲突。为此应当使用在uv inituv venv后加上--managed-python以避免使用系统 python。或者在~/.config/uv/uv.toml中写明

toml
python-preference = "managed"

以一劳永逸的解决这个问题。

返回

人同此心,心同此理;如风沐面,若水润心