在mac上安装Python 3.3

时间:2014-02-18 01:38:47

标签: python macos python-3.x

我使用了来自http://www.python.org/download的安装程序。安装似乎成功,它删除了我的Applications目录中的Python 3.3文件夹。我运行了它包含的“Update Shell Profile.command”脚本,并将/Library/Frameworks/Python.framework/Versions/3.3/添加到我的路径中。然而,该目录中的Python版本似乎是2.7.5。

/Library/Frameworks/Python.framework/Versions/3.3  ls
Headers   Python    Resources bin       include   lib       share
/Library/Frameworks/Python.framework/Versions/3.3  Python --version
Python 2.7.5

此外,ls /usr/bin | grep python显示:

python
python-config
python2.5
python2.5-config
python2.6
python2.6-config
python2.7
python2.7-config
pythonw
pythonw2.5
pythonw2.6
pythonw2.7

我错过了什么?

2 个答案:

答案 0 :(得分:4)

这里有很多问题。


首先,您不应该运行框架的可执行文件Python。框架可执行文件并不意味着可以运行,而且这个实际上只是巧合而已。

具有要运行的程序的框架将它们放在某个地方的bin目录中 - 在框架之外(如/usr/local/bin)或在其内部(如/Library/Frameworks/Foo.framework/Versions/X.Y/bin)。默认情况下,Python 3.3执行后者。

bin目录中的程序都是小写的,不是大写的,所以没有Python可以运行。


接下来,在Mac上以及除Windows之外的世界上几乎所有其他平台上,当前的工作目录都不是PATH的一部分。因此,当您键入Python --version时,会在Python的某处找到PATH。您碰巧在当前目录中拥有该名称的可执行文件这一事实并不意味着什么(除了它让您感到困惑)。如果你真的想要运行该文件(但是你真的没有),你必须改为编写./Python


此外,首先cd进入框架目录是没有充分理由的。当然,你可以从那里运行你想要的文件,并使用相应的相对路径名:bin/python3,但是你不想这样做。


接下来,在安装Python 3.3之前,您可能正在使用已运行的shell。可以使用Update Shell Profile.command脚本将Python 3.3添加到PATH以用于所有未来的shell,或者使用PATH生成新的shell,但无论哪种方式都不会影响任何现有的 shell。要解决这个问题,你只需要开始一个新的shell。


下一步:

  

ls /usr/bin | grep python显示:

/usr/bin目录仅适用于属于操作系统的程序。您自己安装的程序将放在/usr/local/bin或PATH的其他位置。 Python安装程序有一个选项(虽然它可能是隐藏的,我不记得了......)将启动器放在/usr/local/bin中。它还有一个选项 - 您选择 - 将其框架bin目录放在PATH上。但不管怎样,它永远不会在/usr/bin中放任何东西。


最后,即使在安装Python 3.3之后,默认的python仍然是2.7。 python3python3.3将为3.3,但pythonpython2.7将为2.7。有关基本原理,请参阅PEP 394 — The "python" Command on Unix-Like Systems。但是简短的版本是,各种代码依赖于Python 2.7并且与可能安装在系统上的3.3不兼容,并且您不希望所有代码都停止工作。


所以,把它们放在一起:

  • 在Terminal.app。中创建一个新选项卡或窗口。
  • 输入python3 --version

答案 1 :(得分:0)

您可能需要考虑使用virtualenv:

$ /Library/Frameworks/Python.framework/Versions/3.3/bin/python3 -m venv ~/myvenv
$ source ~/myvenv/bin/activate
(myvenv) $ curl https://bootstrap.pypa.io/get-pip.py | python
(myvenv) $ deactivate
$ source ~/myvenv/bin/activate

http://docs.python-guide.org/en/latest/dev/virtualenvs/