4

所以我通过 Macports 安装了 Python 3.3,使用port install python33

(使用 OSX 10.8.2 ML)

一切正常(至少它最后没有发出任何错误消息)

因此,在此之后,我想通过端口选择选择这个特定的 python 版本,并且首先想要现在拥有所有可用版本的列表:

port select --list python

现在这只给了我3个选项的列表:

Available versions for python:
    None
    python27 (active)
    python33

在我安装 python33 之前,我还列出了 python 的苹果版本:

Available versions for python:
    none
    python25-apple
    python26-apple
    python27 (active)
    python27-apple

Apple 版本仍然存在(位于:/System/Library/Frameworks/Python.framework/Versions),只是不再列出。

有谁知道如何处理这个?(另外,当我python在shell中使用该命令时,它仍然使用python27-apple版本。之前我想更改版本时,出现错误。但那将是另一个问题。)

编辑(2012 年 10 月 24 日):

与此同时,我发现了这个命令:

port contents python_select

这给出了:

Port python_select contains:
    /opt/local/etc/select/python/base
    /opt/local/etc/select/python/none

除了此处列出的内容外,该文件夹还包含以下文件:

drwxr-xr-x  8 admin  272 24 Okt 09:50 .
drwxr-xr-x  5 admin  170  4 Okt 15:05 ..
-rw-r--r--  1 wheel  363 23 Okt 17:18 base
lrwxr-xr-x  1 admin    8 23 Okt 18:05 current -> python27
-rw-r--r--  1 wheel   26 23 Okt 17:18 none
-rw-r--r--  1 wheel  398 23 Okt 23:27 python27
-rw-r--r--  1 wheel  384 23 Okt 17:21 python33

python27和33文件是一个简单的文本文件,内容相同(版本号不同):

bin/python2.7
bin/pythonw2.7
bin/python2.7-config
bin/idle2.7
bin/pydoc2.7
bin/smtpd2.7.py
bin/2to3-2.7
share/man/man1/python2.7.1
-
/opt/local/Library/Frameworks/Python.framework/Versions/2.7
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/Headers
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/Resources
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/Python    

但就是这样。我不知道我能用这些信息做什么......

4

1 回答 1

1

(另外,当我在shell中使用python命令时,它仍然使用python27-apple版本。当我之前想更改版本时,出现错误。但那将是另一个问题。)

这听起来像您的搜索路径不正确。编辑您的~/.bashrc并在最后放入:

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

如果您想在系统范围内拥有此功能,请编辑/etc/bash.rc并将PATH定义放入其中。你想把它放在接近结尾的某个地方,因为 bash 资源往往会重新定义PATH有时(所以如果你把它放在开头,那么剩下的配置很可能会改变它)。

无论如何,在下一次终端启动后,该命令python应该在 中解析/opt/local/bin/,并且python可执行文件应该有一个符号链接到您选择的任何端口版本。

更新:您可以使用以下命令测试您的 shell 将选择哪个 Python 版本,具体取决于您的PATH设置:

which python

这应该打印

/opt/local/bin/python
于 2014-08-15T09:40:46.603 回答