关于 MacOS 上 Python 版本的小问题

2018-07-13 20:16:18 +08:00
 ulmate01
一直没有很理解这一块的逻辑。
原来有 python2.7 和 3.6.1,没有装 env,anaconda
3.6.1 装了 tensorflow、numpy 等包
后来更新了 3.7,3.7 里并没有 numpy 等包。3.6.1 也没被删。
现在在 terminal 里输入 python3 默认的是 3.7,请问我要使用 3.6.1 该如何使用?
目前唯一的办法是在 pycharm 里面可以搜索到 3.6.1 并调用。
既然 pycharm 可以搜索到 3.6.1,那么系统 terminal 也理应可以调用。
请各位大佬赐教。
3470 次点击
所在节点    Python
10 条回复
malusama
2018-07-13 20:23:32 +08:00
装 pyenv 管理 python 的环境
likuku
2018-07-13 20:25:30 +08:00
同 #1,系统自带的 python 最好不要去动它,用 pyenv 来安装管理你想要的 python 版本
bzq2810
2018-07-13 21:05:55 +08:00
找到 3.6.1 的位置,软连接到 path 目录下,改成与 python3 不同的名字(比如 python3.6 ) pip 也一样
matthewz
2018-07-14 00:10:55 +08:00
系统变量 path 了解一下
lovedebug
2018-07-14 00:19:35 +08:00
在你的 bashrc 或者 zshrc 中手动设置 python 版本即可。
Sylv
2018-07-14 00:35:02 +08:00
简单来说,你在终端下输入 python3 后,终端是依次从 PATH 系统变量里的目录里去找 python3 文件来运行,这个目录一般是 /usr/local/bin,然后 /usr/local/bin/python3 是软链接到真正 python3 的安装位置。你在装了更新版本的 python3 后, /usr/local/bin/python3 一般就会链接到新版本 python3 的位置,因此旧版本的 python3 就没法通过在终端里输入 python3 运行到了。
解决方法:
1. 找到 python 3.6 的安装位置,直接输入全路径来运行(也就是 pycharm 能调用到 3.6 的原因)。
2. 把 3.6 的实际路径软链接到 /usr/local/bin/python3.6,这样可以通过输入 python3.6 来运行。
3. 使用 pyenv 来管理切换 python 版本。(推荐)
XIVN1987
2018-07-14 00:48:57 +08:00
建议 alias,,下面是我在 Ubuntu 下的做法(自己的包都装在虚拟环境下,不污染系统 python )

安装虚拟环境和 ipython:
virtualenv -p python2.7 --system-site-packages venv27
source venv27/bin/activate
pip install ipython

virtualenv -p python3.5 --system-site-packages venv35
source venv35/bin/activate
pip install ipython

创建 alias
function ipy2 {
  ~/win/venv27/bin/ipython
}

function ipy3 {
  ~/win/venv35/bin/ipython
}

function venv27 {
   source ~/win/venv27/bin/activate
}

function venv35 {
source ~/win/venv35/bin/activate
}
guanyuwl
2018-07-16 14:36:59 +08:00
建议 alise 新学了一个 pipenv
frostming
2018-07-17 12:34:36 +08:00
次版本号更新,原来装的第三方包就是不能用了,我觉得这确实很不合理。要么就用回老版本 Python。

这就是虚拟环境的用处了,建议所有的应用都用一个隔离的环境,python 里面就装一些很有限的包,可以容忍每次更新 Python 次版本都重装一次的程度。

楼上说的 pipenv 就是干这个的
kavana
2018-07-31 21:46:51 +08:00
pycharm 可以比较明显的看到你的 python 安装在哪里,一般就 3 个地方,一个是 /usr/local/bin,一个是 anaconda/bin 下,一个在 Frameworks/Python.framework 下

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

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

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

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

© 2021 V2EX