【问题标题】:Installing Python 3.3 on mac在 Mac 上安装 Python 3.3
【发布时间】:2014-07-28 21:44:40
【问题描述】:

我使用了来自http://www.python.org/download 的安装程序。安装似乎成功了,它把 Python 3.3 文件夹放到了我的 Applications 目录中。我运行了它包含的“更新 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

我错过了什么?

【问题讨论】:

    标签: python macos python-3.x


    【解决方案1】:

    这里有多个问题。


    首先,您不应该运行框架的可执行文件Python。框架可执行文件并不意味着要运行,而这个恰好可以工作只是一个巧合。

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

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


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


    另外,首先确实没有充分的理由将cd 放入框架目录。当然,您可以从那里使用适当的相对路径名运行所需的文件:例如,bin/python3,但您不想这样做。


    接下来,您可能正在使用在安装 Python 3.3 之前已经运行的 shell。 Update Shell Profile.command 脚本可用于将 Python 3.3 添加到 PATH 以用于所有未来的 shell,或者使用 PATH 生成新的 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

    【讨论】:

      【解决方案2】:

      您可能需要考虑使用 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/

      【讨论】:

        猜你喜欢
        • 2014-03-20
        • 1970-01-01
        • 1970-01-01
        • 2014-01-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-09
        • 1970-01-01
        相关资源
        最近更新 更多