为什么搞砸了?
正如OP的更新所述,有两种不同的安装Python的方式,它们将文件放置在不同的位置。例如,
macports把东西放进去
/opt/local/,而
homebrew把东西放进去
/usr/local/。另外,Mac
OS X附带了一些python版本。因此,如果您通过不同的方式多次安装python,您将 获得许多独立存在 于系统上的 python版本 。
它引起什么问题?
我不知道
我猜问题是,如果您有许多版本的python,那么要使用哪个版本以及在哪里找到软件包,将分别由系统中的路径顺序
PATH以及
PYTHONPATH相应的路径决定。因此,您可能无法控制在哪里安装python模块。考虑一下,如果您运行
sudopython setup.py install安装模块(它通过根目录找到python
PATH),然后尝试通过
import该模块
python-c "import it"(这次它通过您的目录找到python
PATH),则可能出问题了。这是我的猜测,我没有验证。但就我自己而言,确实出现了问题。
如何避免这种情况?
我认为原则是 要意识到不同的方式和工具 会将 事物独立地安装到不同的位置,因此请谨慎使用 。
- 除非您打算这样做,否则请不要通过不同的方式两次安装相同的东西。(如果您打算将其用于python,则可能要签出
virtualenv
) - 留意您的路径顺序,
PATH
并考虑是否正确。 - 安装模块时,请清除正在运行哪个python(或pip)以及模块的安装位置。
那么,我该如何解决自己的情况呢?
由于它已经弄糟了,而且似乎很难治愈,所以最后我通过 重新安装完整的OS 来解决了这个问题,并开始遵循上面的 DO-and-DONT
。对于使用python安装科学环境(numpy / scipy /
matplotlib,它显示出使我问这个问题的问题),我发现本教程非常有帮助。这样,问题终于解决了。



