当我发现这件事情的时候确实有点无语
op 使用的是 archlinux ,之前系统 python 解释器是 3.10 ,突然发现变成 3.11 了,我猜测是 pacman 更新的,但是用pacman -Qc python
没有查询到变更记录
今天发现一个 virtualenv 的虚拟环境不能用了,仔细看了后才发现,之前因为虚拟环境里的 ptyhon 解释器跟系统解释器同一个版本,就直接链接过去了,然而系统更新把/usr/bin/python3.10
搞没了,所以就成了 broken link
想到一个简单的办法:把软链接改到/usr/bin/python3.11
,能行吗,会不会不兼容?
平时基本都是每次更新都看一遍才升级的,估计那次刚好看漏了。。。
1
c0nstantien 348 天前
我也是这个问题,解决办法是安装 3.10 版本,再重新建虚拟环境,指定版本为 3.10 ,我用的 pipenv 管理的
|
2
zhanghua0 348 天前 via Android
之前用的也是系统的解释器?那么重新用新版解释器建立 venv 应该就好了
|
3
westoy 348 天前
python -m venv --upgrade $dir
|
4
Ricardoo 348 天前 1
头疼,老哥,怎么又是你,上次好像 conda 环境搞崩了也是你吧=。=!
archlinux 自带的 python 是很多组件的依赖,版本升级也会跟着升级,自己开发别用系统的 python 。所以用虚拟环境就别用 venv 这种,他是把解释器链接到当前目录的(真要用自己安装一个 python ,venv 链接到自定义的 python )。 你需要一个完全独立的 python 解释器,推荐 miniconda 。 |
5
lwjef 348 天前 via iPhone
wiki 上有提到,aur 装需要版本,venv 指定版本。
https://wiki.archlinux.org/title/python https://wiki.archlinux.org/title/Python/Virtual_environment |
6
Masoud2023 348 天前
|
8
alexsz 346 天前
@Masoud2023 pyenv +1
|