Python中Mac同时存在多个版本,为什么terminal无法使用3.5而Pycharm可以?

null
Python中Mac同时存在多个版本,为什么terminal无法使用3.5而Pycharm可以?

19 回复

不能用是什么意思,你敲 python3.5 回车没反应,还是切到 python3.5 的目录运行不了?


这问题我遇到过,本质是环境变量PATH的优先级问题。

Mac系统自带的Python是2.7,你通过Homebrew或其他方式安装了Python 3.5。在Terminal里输入python时,系统会按PATH路径顺序查找可执行文件。通常/usr/bin/python(系统2.7)的优先级高于你安装的3.5路径(比如/usr/local/bin/python3)。

PyCharm能用的原因很简单:它在项目设置里直接指定了Python解释器的完整绝对路径(比如/usr/local/bin/python3.5),完全绕过了PATH查找。

最直接的解决方案:

在Terminal里,不要用python命令,直接用版本号明确的命令:

python3.5

或者

python3

如果想在Terminal里让python默认指向3.x:

  1. 最安全的方法——创建别名(加到~/.bashrc~/.zshrc):
alias python='python3'
  1. 通过Homebrew重新链接(如果3.5是通过brew安装的):
brew unlink python && brew link python
  1. 修改PATH优先级(不推荐新手乱改,容易搞乱系统)。

检查当前状况的命令:

which python      # 查看Terminal实际调用的python路径
which python3.5   # 查看3.5的安装位置
echo $PATH        # 查看路径优先级

总结:Terminal认PATH,PyCharm认绝对路径。

终端下切到 python3.5 安装位置,手动运行下看看


加我们的群问效率更高,一群工程师组建的面向初学者的
Python Linux 学习群,qq 群号:278529278,
Php Linux 学习群,qq 群号:476648701,
非商业性质,拒绝广告,只接收真正想学这方面技术的朋友,交流学习,申请请说明来自 v2ex

Pycharm 也不自带 Python3 啊,应该是你给配的环境变量啊什么的用的 3.5

ide 配置的绝对路径,终端里面你也用全路径就行

环境变量的问题吧

cd bin
mv python python.bak
ln -s pythonXY python

在 bin 里面的 python* 全都是以软连接的形式存在的 想要改 python 版本自己重建软连接就行了。

环境变量问题

为何不用 virtualenv ?



~ python3.5
zsh: command not found: python3.5

恩,PyCharm 可以选择 project interpreter,因为之前很多包都装在了 3.5 中

恩,我试试

昨天有事没用电脑,多谢各位的热心解答

应该是 python35 不带点的,你去 /bin 看看就知道了

不对。。。是带点的。。。

$ ll python*
lrwxrwxrwx 1 root root 7 Jan 17 21:24 python -> python2
lrwxrwxrwx 1 root root 9 Jan 17 21:24 python2 -> python2.7
-rwxr-xr-x 1 root root 7136 Nov 6 08:29 python2.7
-rwxr-xr-x 1 root root 1835 Nov 6 08:29 python2.7-config
-rwxr-xr-x 1 root root 304 Dec 13 19:49 python2.7-futurize
-rwxr-xr-x 1 root root 308 Dec 13 19:49 python2.7-pasteurize
lrwxrwxrwx 1 root root 16 Jan 17 23:28 python2-config -> python2.7-config
-rwxr-xr-x 1 root root 11312 Dec 29 09:58 python3
-rwxr-xr-x 2 root root 11312 Nov 10 00:27 python3.4
-rwxr-xr-x 2 root root 11312 Nov 10 00:27 python3.4m
-rwxr-xr-x 2 root root 11312 Apr 7 22:35 python3.6
-rwxr-xr-x 2 root root 11312 Apr 7 22:35 python3.6m
lrwxrwxrwx 1 root root 9 Jan 17 23:31 python3.bak -> python3.4
lrwxrwxrwx 1 root root 14 Jan 17 23:28 python-config -> python2-config

➜ /Users/xray887 >which python
/usr/local/bin/python
➜ /Users/xray887 >cd /usr/local/bin
➜ /usr/local/bin >ll python*
lrwxr-xr-x 1 xray887 admin 34B 12 28 20:45 python -> …/Cellar/python/2.7.13/bin/python
lrwxr-xr-x 1 xray887 wheel 71B 11 26 2015 python-32 -> …/…/…/Library/Frameworks/Python.framework/Versions/2.7/bin/python-32
lrwxr-xr-x 1 xray887 admin 41B 12 28 20:45 python-config -> …/Cellar/python/2.7.13/bin/python-config
lrwxr-xr-x 1 xray887 admin 35B 12 28 20:45 python2 -> …/Cellar/python/2.7.13/bin/python2
lrwxr-xr-x 1 xray887 wheel 72B 11 26 2015 python2-32 -> …/…/…/Library/Frameworks/Python.framework/Versions/2.7/bin/python2-32
lrwxr-xr-x 1 xray887 admin 42B 12 28 20:45 python2-config -> …/Cellar/python/2.7.13/bin/python2-config
lrwxr-xr-x 1 xray887 admin 37B 12 28 20:45 python2.7 -> …/Cellar/python/2.7.13/bin/python2.7
lrwxr-xr-x 1 xray887 wheel 74B 11 26 2015 python2.7-32 -> …/…/…/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7-32
lrwxr-xr-x 1 xray887 admin 44B 12 28 20:45 python2.7-config -> …/Cellar/python/2.7.13/bin/python2.7-config
lrwxr-xr-x 1 xray887 admin 35B 4 28 10:06 python3 -> …/Cellar/python3/3.6.1/bin/python3
lrwxr-xr-x 1 xray887 wheel 72B 11 13 2015 python3-32 -> …/…/…/Library/Frameworks/Python.framework/Versions/3.5/bin/python3-32
lrwxr-xr-x 1 xray887 admin 42B 4 28 10:06 python3-config -> …/Cellar/python3/3.6.1/bin/python3-config
lrwxr-xr-x 1 xray887 wheel 74B 11 13 2015 python3.5-32 -> …/…/…/Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5-32
lrwxr-xr-x 1 xray887 admin 37B 4 28 10:06 python3.6 -> …/Cellar/python3/3.6.1/bin/python3.6
lrwxr-xr-x 1 xray887 admin 44B 4 28 10:06 python3.6-config -> …/Cellar/python3/3.6.1/bin/python3.6-config
lrwxr-xr-x 1 xray887 admin 38B 4 28 10:06 python3.6m -> …/Cellar/python3/3.6.1/bin/python3.6m
lrwxr-xr-x 1 xray887 admin 45B 4 28 10:06 python3.6m-config -> …/Cellar/python3/3.6.1/bin/python3.6m-config
lrwxr-xr-x 1 xray887 admin 35B 12 28 20:45 pythonw -> …/Cellar/python/2.7.13/bin/pythonw
lrwxr-xr-x 1 xray887 wheel 72B 11 26 2015 pythonw-32 -> …/…/…/Library/Frameworks/Python.framework/Versions/2.7/bin/pythonw-32
lrwxr-xr-x 1 xray887 admin 36B 12 28 20:45 pythonw2 -> …/Cellar/python/2.7.13/bin/pythonw2
lrwxr-xr-x 1 xray887 wheel 73B 11 26 2015 pythonw2-32 -> …/…/…/Library/Frameworks/Python.framework/Versions/2.7/bin/pythonw2-32
lrwxr-xr-x 1 xray887 admin 38B 12 28 20:45 pythonw2.7 -> …/Cellar/python/2.7.13/bin/pythonw2.7
lrwxr-xr-x 1 xray887 wheel 75B 11 26 2015 pythonw2.7-32 -> …/…/…/Library/Frameworks/Python.framework/Versions/2.7/bin/pythonw2.7-32

回到顶部