如何在Python IDLE中使用Numpy?

3 投票
1 回答
13936 浏览
提问于 2025-04-18 16:09

这个问题的变种已经有人问过了,但大家的回答总是从头开始(也就是从安装numpy开始)。

我之前已经在电脑上安装了numpy,是通过下载Anaconda时一起装上的。

如果我再用 pip install numpy 来安装numpy,就会出现一大堆错误信息,最后的内容看起来像这样:

Command C:\Python27\python.exe -c "import setuptools, tokenize;__file__='c:\\users\\imray~1\\appdata\\local\\temp\\pip_build_Imray\\numpy\\setu
p.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record c:\users\imray~1\appd
ata\local\temp\pip-smduhf-record\install-record.txt --single-version-externally-managed --compile failed with error code 1 in c:\users\imray~1\appdat
a\local\temp\pip_build_Imray\numpy
Storing debug log for failure in C:\Users\Imray\pip\pip.log

在我从 Anaconda 文件夹里打开 cmd,然后输入 import numpy 时,numpy可以正常工作。但如果我在IDLE里,即使我通过 os.chdir('C:\Anaconda') 进入了那个文件夹,输入同样的命令,numpy却不工作。

我该怎么才能让numpy在IDLE里也能用呢?

1 个回答

3

首先,你可能已经知道,Anaconda自带一个免费的IDE,跟IDLE有很多相似之处。这个IDE叫做Spyder,你可以在任何终端里通过输入:spyder来访问它。到这里你可以选择不再继续阅读,直接使用Spyder。

但如果你真的想用IDLE,你需要先找到它。IDLE是和你系统上安装的每个Python版本一起打包的。例如,我在以下位置找到了我的IDLE:

/usr/local/Cellar/python3/3.3.2/Frameworks/Python.framework/Versions/3.3/lib/python3.3/idlelib/idle.pyw

如果我运行这个IDLE对应的Python版本,我就无法使用NumPy,因为我在这个版本里从来没有安装过它:

python3
...
>>> import numpy as np
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named 'numpy'

不过,我在我的Canopy版本的Python里安装了NumPy(Canopy和Anaconda非常相似)。

python
...
>>> import numpy as np
>>>

为了在控制台中使用NumPy,我可以这样做:

python /usr/local/Cellar/python3/3.3.2/Frameworks/Python.framework/Versions/3.3/lib/python3.3/idlelib/idle.pyw

我在运行Canopy版本的Python,它已经安装了NumPy,然后像运行任何脚本一样调用另一个Python版本的IDLE。这样IDLE控制台就会弹出来,并且可以让我导入和使用NumPy。

这算是一种变通的方法,我发现效果有时好有时坏。当我用Canopy的Python打开另一个Python版本的IDLE(通过Homebrew安装的Python 2.7)时,有时在使用print语句时会遇到以下错误:

Unknown object id: 'console'

所以要注意,你可能会遇到这样的情况。

撰写回答