mac 上的 python3 版本突然自动升级了,以前创建的 virtuenv 也无法使用了,是怎么回事

2020-09-09 10:06:09 +08:00
 css3
我 mac 上登录的用户,以前 python3 的版本一直是 3.7.3, 执行 sudo -i 切换到 root 权限时,python3 的版本是 3.8.3,可是今天发现,我的登录的用户,python3 的版本变成了 3.8.3,之前创建的 virtuenv 进去之后,所有包都提示不存在了,连 pip 也是 comand not found 了,但 bin 目录下看,可执行文件都在的,不知道是哪里搞坏环境变量了吗?看文件的所有者均属于我登录的用户,感觉没有问题啊,可再完全没有解决办法的思路了,请教一下各位,有遇到过这种问题吗,怎么解决啊
2599 次点击
所在节点    macOS
21 条回复
iConnect
2020-09-09 10:24:05 +08:00
印象里 virtualenv2.0 之后的升级 py 版本机制,才和内置的 venv 一致,楼主去查看下版本问题。具体版本细节记得不是很清楚,看到文档里提过这么一说
a719114136
2020-09-09 10:26:48 +08:00
是不是你 mac 系统升级了,大版本升级的话可能导致原来的 python 环境不能用
littlewing
2020-09-09 10:40:13 +08:00
建议使用 homebrew 自己安装 py 环境,不用系统自带的
TimePPT
2020-09-09 10:41:02 +08:00
pyenv 解千愁
css3
2020-09-09 11:01:21 +08:00
@iConnect 老哥,不太明白是啥情况啊,我 venv 是基于 3.7.3 版本的,现在默认的变成了 3.8.3 了

@a719114136 我去,感觉还真是这个原因导致了 python3 升级

@littlewing 好像还真的自己管理
@TimePPT 回头我试试,多谢
Dvel
2020-09-09 11:06:07 +08:00
系统现在自带 python2 和 python3,而且可能随着升级系统而改变版本。
如果你只用一个固定版本,用 homebrew 自己装一个。
如果你使用多个版本,用 pyenv 可以管理多个版本。
css3
2020-09-09 11:10:20 +08:00
@iConnect @a719114136 @littlewing @TimePPT @Dvel 以前用的 windows10, 从来没有遇到过自动升级 python 版本的问题,最近切到 mac 上,首次发现,有点惊讶😂
lln133208
2020-09-09 11:32:23 +08:00
开发环境的 Python 最好使用 pyenv 来管理,不要依赖系统自带的。
willww64
2020-09-09 11:37:57 +08:00
virtualenv 是用 virtualenv 命令还是 python3 -m venv 建的?如果是后者的话,python3 -m venv --upgrade venv 试一下看。
breaker911
2020-09-09 12:48:11 +08:00
我觉得系统的问题小一些吧 苹果升 macos 的各种 runtime 版本上貌似没那么积极
brew 装个 3.8 还得 python@3.8 我觉得苹果这次没那么激进吧
是不是装了什么依赖 python 的软件 或者库 或者 pycharm/VSC 插件之类的自动把 3.7 升到 3.8 了
cocoabeans
2020-09-09 12:52:25 +08:00
pyenv + poetry
css3
2020-09-09 12:58:46 +08:00
@lln133208 这回就长记性了

@willww64 virtualenv 是用 pip 安装的,所以你说的这两种,都是一个性质的吧?

@breaker911 这几天没有升级过其他的,就 macOS 自动升级了

@cocoabeans 好的,老哥
breaker911
2020-09-09 13:20:31 +08:00
@css3 看了眼 好像默认的真给升到 3.85 了...只不过我用 brew 装的 3.7 和 3.8 都还在 所以默认还是 3.7
a719114136
2020-09-09 13:27:13 +08:00
Python 是需要编译安装的,virtualenv 只是把编译好的 Python 复制一份。
老系统编译的 Python 不能在新系统用很正常。所以 mac 一般不要升级,否则很多东西都得重新安装。
css3
2020-09-09 14:01:39 +08:00
@a719114136 这会长记性了,也给我坑哭了😂😂
linvaux
2020-09-09 14:20:26 +08:00
还是 conda 爽啊
IgniteWhite
2020-09-09 15:47:44 +08:00
homebrew 加 pyenv 正解。另外 arm 版出来后,pyenv 里的 conda 不一定能用,可以试试 miniforge
HiddenNPC
2020-09-09 15:58:27 +08:00
建议使用 PYENV 。升级没出过问题
renmu123
2020-09-09 17:14:47 +08:00
这时候顺势把环境转成 pyenv + poetry,香就完事了
willww64
2020-09-09 18:32:51 +08:00
@css3 python3.3 之后自带 venv 模块,完全不用另外安装 virtualenv 。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/705391

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX