2015-04-20 67 views
4

我的系统是Mac OS X. 我首先通过macport安装numpy,然后下载Pycharm,并发现无论我选择何种解释器,我都无法导入numpy。结果如下:Pycharm无法导入numpy

/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7 "/Users/erleye/Documents/Python/Pycharm Projects/test.py" 
Traceback (most recent call last): 
    File "/Users/erleye/Documents/Python/Pycharm Projects/test.py", line 4, in <module> 
    import numpy as np 
ImportError: No module named numpy 

但是,如果我在终端使用python test.py它工作正常。 当我输入端子which -a python,我有:

/opt/local/bin/python 
/opt/local/bin/python 
/Library/Frameworks/Python.framework/Versions/2.7/bin/python 
/usr/local/bin/python 
/usr/bin/python 
/opt/local/bin/python 

我不知道为什么我有蟒蛇这么多版本,但我相信,当我在Pycharm选择的解释,它是具有numpy的一安装。 我能做什么?

+0

这些版本都是Python 3吗?从终端尝试'python --version'。可能numpy是为Python 3安装的,但不是Python 2. – cfh

+1

那么,你有3个版本的Python,而不是6;你不知道怎么把'/ opt/local/bin'加到你的'PATH'三次而不是一次,而'/ usr/local/bin/python'几乎肯定是'/ Library/Frameworks/Python的链接。 framework/Versions/2.7/bin/python',这可能是一个python.org二进制安装。 – abarnert

+1

同时,你在PyCharm中运行的是'/ Library'(你可以从错误信息中得知)。你怎么能确定这是你安装numpy的那个,当你甚至不知道那个人是如何到达那里的? – abarnert

回答

2

我不知道为什么我有这么多版本的python,但我确定当我在Pycharm中选择解释器时,它是安装了numpy的解释器。

不,它不是。

根据您的which,在终端键入python python.py时运行的Python将为/opt/local/bin/python,即MacPorts之一。

但是根据PyCharm中的错误信息,它运行的Python是/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7,它不是MacPorts的一个。 (这可能来自Python.org的二进制安装程序。)

所以,那是你的问题。

那么,你运行MacPorts Python几乎是不可能的,但你已经设置了一个PYTHONPATHPYTHONHOME来强制它尝试使用Python.org站点包而不是它自己的包。但是在这种情况下,你遇到了更大的问题......

当然,你最大的问题是你有3个不同的Python 2.7副本,并且总共有6个路径条目,你甚至不知道你如何得到它们或者你正在安装哪些网站包。清理东西可能比继续尝试混淆更容易,但这是您的选择。

+0

是的,我发现了这个问题。这正是你所说的。当我开始项目时,我使用了/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7。即使在我将配置中的解释器更改为新的解释器后,它仍然使用旧python的站点包。在使用新解释器开始新项目后,问题得到解决。非常感谢! – Erle

+0

但我只是困惑,我应该清理哪些python。 – Erle

+0

@Erle:那么,为什么你在第一个地方安装了两个额外的Python 2.7,在苹果给你的那个之上?也许你需要其中一个 - 但如果是这样的话,你应该能够解释为什么,并且这个解释应该告诉你你需要哪一个。因此,废弃你不需要的那个。 (或者两者兼而有之,如果你不需要的话)。 – abarnert