如何更改默认的python版本?

时间:2011-05-01 03:10:52

标签: python macos

我在我的mac中安装了python 3.2。在我运行 / Applications / Python 3.2 / Update Shell Profile.command 之后,当我在终端中输入 python -V 时它会说 Python 2.6.1 ,如何更改默认的python版本?

16 个答案:

答案 0 :(得分:93)

这可能是向后兼容性所希望的。

Python3打破了向后兼容性,调用'python'的程序可能需要python2。您可能有许多程序和脚本,您甚至不知道哪些程序和脚本需要python = python2,而更改它会破坏这些程序和脚本。

你可能正在寻找的答案是你不应该改变这个

但是,您可以在shell中创建自定义别名。你这样做的方式取决于shell,但也许你可以做alias py=python3

如果您对如何启动最新版本的python感到困惑,至少在Linux上python3使您的python2安装保持原样(由于上述兼容性原因) );因此,您可以使用python3命令启动python3。

答案 1 :(得分:40)

在使用python.org安装程序的Mac OS X上,您需要使用python3调用Python 3,而不是python。目前保留用于Python 2版本。您还可以使用python3.2专门调用该版本。

$ which python
/usr/bin/python
$ which python3
/Library/Frameworks/Python.framework/Versions/3.2/bin/python3
$ cd /Library/Frameworks/Python.framework/Versions/3.2/bin/
$ ls -l
total 384
lrwxr-xr-x  1 root  admin      8 Apr 28 15:51 2to3@ -> 2to3-3.2
-rwxrwxr-x  1 root  admin    140 Feb 20 11:14 2to3-3.2*
lrwxr-xr-x  1 root  admin      7 Apr 28 15:51 idle3@ -> idle3.2
-rwxrwxr-x  1 root  admin    138 Feb 20 11:14 idle3.2*
lrwxr-xr-x  1 root  admin      8 Apr 28 15:51 pydoc3@ -> pydoc3.2
-rwxrwxr-x  1 root  admin    123 Feb 20 11:14 pydoc3.2*
-rwxrwxr-x  2 root  admin  25624 Feb 20 11:14 python3*
lrwxr-xr-x  1 root  admin     12 Apr 28 15:51 python3-32@ -> python3.2-32
lrwxr-xr-x  1 root  admin     16 Apr 28 15:51 python3-config@ -> python3.2-config
-rwxrwxr-x  2 root  admin  25624 Feb 20 11:14 python3.2*
-rwxrwxr-x  1 root  admin  13964 Feb 20 11:14 python3.2-32*
lrwxr-xr-x  1 root  admin     17 Apr 28 15:51 python3.2-config@ -> python3.2m-config
-rwxrwxr-x  1 root  admin  25784 Feb 20 11:14 python3.2m*
-rwxrwxr-x  1 root  admin   1865 Feb 20 11:14 python3.2m-config*
lrwxr-xr-x  1 root  admin     10 Apr 28 15:51 pythonw3@ -> pythonw3.2
lrwxr-xr-x  1 root  admin     13 Apr 28 15:51 pythonw3-32@ -> pythonw3.2-32
-rwxrwxr-x  1 root  admin  25624 Feb 20 11:14 pythonw3.2*
-rwxrwxr-x  1 root  admin  13964 Feb 20 11:14 pythonw3.2-32*

如果您还从python.org安装了Python 2,它将具有类似的框架bin目录,没有重叠的文件名(2to3除外)。

$ open /Applications/Python\ 2.7/Update\ Shell\ Profile.command
$ sh -l
$ echo $PATH
/Library/Frameworks/Python.framework/Versions/2.7/bin:/Library/Frameworks/Python.framework/Versions/3.2/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
$ which python3
/Library/Frameworks/Python.framework/Versions/3.2/bin/python3
$ which python
/Library/Frameworks/Python.framework/Versions/2.7/bin/python
$ cd /Library/Frameworks/Python.framework/Versions/2.7/bin
$ ls -l
total 288
-rwxrwxr-x  1 root  admin    150 Jul  3  2010 2to3*
lrwxr-x---  1 root  admin      7 Nov  8 23:14 idle@ -> idle2.7
-rwxrwxr-x  1 root  admin    138 Jul  3  2010 idle2.7*
lrwxr-x---  1 root  admin      8 Nov  8 23:14 pydoc@ -> pydoc2.7
-rwxrwxr-x  1 root  admin    123 Jul  3  2010 pydoc2.7*
lrwxr-x---  1 root  admin      9 Nov  8 23:14 python@ -> python2.7
lrwxr-x---  1 root  admin     16 Nov  8 23:14 python-config@ -> python2.7-config
-rwxrwxr-x  1 root  admin  33764 Jul  3  2010 python2.7*
-rwxrwxr-x  1 root  admin   1663 Jul  3  2010 python2.7-config*
lrwxr-x---  1 root  admin     10 Nov  8 23:14 pythonw@ -> pythonw2.7
-rwxrwxr-x  1 root  admin  33764 Jul  3  2010 pythonw2.7*
lrwxr-x---  1 root  admin     11 Nov  8 23:14 smtpd.py@ -> smtpd2.7.py
-rwxrwxr-x  1 root  admin  18272 Jul  3  2010 smtpd2.7.py*

答案 2 :(得分:23)

老问题,但另外:

virtualenv --python=python3.5 .venv
source .venv/bin/activate

答案 3 :(得分:23)

检查python 3的位置

$ which python3
/usr/local/bin/python3

在bash_profile中编写别名

vi ~/.bash_profile  
alias python='/usr/local/bin/python3'

重新加载bash_profile

source ~/.bash_profile

确认python命令

$ python --version
Python 3.6.5

答案 4 :(得分:16)

通过将“默认”Python放在路径上的系统Python之前来更改它,例如:

export PATH=/usr/local/bin:$PATH

答案 5 :(得分:3)

我使用的是OS X 10.7.5和Python 3.4.2。如果键入python3以及要运行的内容,将使用python 3运行它。例如 pyhton3 test001.py。我运行了一个名为test001的测试程序。我希望这会有所帮助。

答案 6 :(得分:2)

根据快速谷歌搜索,此更新仅适用于您已打开的当前shell。它可以通过键入python3来修复,因为mac和linux足够类似于这样的东西重合。 Link to the result of google search.

另外,正如ninjagecko所说,大多数程序尚未更新到3.x,因此将默认python作为3.x会破坏应用程序中使用的许多python脚本。

答案 7 :(得分:2)

做正确的事,做正确的事!

--->零打开终端,

-首先输入python -V,它可能显示:

Python 2.7.10

-其次输入python3 -V,可能显示:

Python 3.7.2

-第三次输入where pythonwhich python,可能显示:

/usr/bin/python

---第四次输入where python3which python3,它可能显示:

/usr/local/bin/python3

-第五行,在Bash下的~/.profile file or ~/.bash_profile或zsh下的~/.zshrc的PATH环境变量文件的底部添加以下行。

alias python='/usr/local/bin/python3'

OR

alias python=python3

-在Bash下输入source ~/.bash_profile或在zsh下输入source ~/.zshrc

-第七次退出终端。

---立即打开您的终端,然后输入python -V,它可能会显示:

Python 3.7.2

我已经成功尝试了。

其他,zsh下的~/.bash_profile不是那个~/.bash_profile

zsh下的~/.profile(或~/.bash_file)通过~/.zshrc的PATH环境变量。

帮助你们!

答案 8 :(得分:1)

简而言之:更改环境变量中的路径!

对于Windows:

  • 高级System Settings > Advance (tab)。在底部,您会发现'Environment Variables'

  • 双击Path。您将看到其中一个python安装的路径,将其更改为所需版本的路径。

答案 9 :(得分:1)

您可以使用以下命令临时更改或在不同版本之间切换:

set path=C:\Users\Shaina\AppData\Local\Programs\Python\Python35-32;%PATH%
python --version

enter image description here

答案 10 :(得分:1)

在我的Mac OSX上,通过Mac端口安装了Python 2.7.18 ,我能够通过以下方式将python版本设置为2.7:

$ sudo port select --set python python27

所以:

$ python -V
Python 2.7.18

答案 11 :(得分:0)

导航至:

我的电脑 - >属性 - >高级 - >环境变量 - >系统变量

假设您已经在路径变量中添加了python 2.7并且您想要将默认路径更改为python 3.x

然后在python2.7路径之前添加python3.5.x文件夹的路径。

打开cmd:输入“python --version”

python版本将更改为python 3.5.x

答案 12 :(得分:0)

sudo mv /usr/bin/python /usr/bin/python2
sudo ln -s $(which python3) /usr/bin/python

这将破坏脚本,但这正是更改python的方法。您还应该重写脚本以不假定python为2.x。无论您呼叫systemexec的位置如何,它都将起作用。

答案 13 :(得分:0)

检查python3具有库的执行路径

$ which python3
/usr/local/bin/python3  some OS might have /usr/bin/python3

打开bash_profile文件并添加别名

vi ~/.bash_profile  
alias python='/usr/local/bin/python3' or alias python='/usr/bin/python3'

重新加载bash_profile以使修改生效

source ~/.bash_profile

运行python命令并检查是否正在使用python3加载

$ python --version
Python 3.6.5

答案 14 :(得分:0)

将Python 3.5设置为更高优先级

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.5 2

检查结果

sudo update-alternatives --config python
python -V

答案 15 :(得分:-2)

在您的计算机上安装较新版本的 python 后...

当您想从终端运行 Python 程序(例如“program.py”)时(在您的系统上使用最新版本的 Python);而不是运行 'python program.py' 运行 'python3 program.py'

同样,如果你想在终端中使用 python(在你的系统上使用最新版本的 python)运行 'python3' 而不是 'python'

作为测试,尝试在终端中运行 'python3 --v'...