我想使用numpy来运行我必须运行的程序,我想在IDLE IDE中执行它。 我已经在线安装了numpy二进制文件,但是当我尝试在我的脚本中运行"import numpy"然后运行一些numpy命令时,但python shell返回错误说
1
2
3
4Traceback (most recent call last):
File"/Users/Admin/Desktop/NumpyTest.py", line 1, in
import numpy as np
ImportError: No module named numpy
我尝试使用pip来安装numpy,但是当我在bash shell中运行pip install numpy时,它说
1
2Requirement already satisfied (use --upgrade to upgrade):
numpy in ./anaconda/lib/python2.7/site-packages
我已经下载了Anaconda,我可以使用numpy发行版,但我真的很想在IDLE中这样做。
我该怎么办才能让Numpy在IDLE工作? 我必须把它保存在某个地方吗?
附: 我正在运行Osx 10.10.5 Yosemite
你确定你使用IDLE 2.7版吗?
看起来你有更多的那个python instaled,你需要运行你安装numpy的那个,或者可能是一些与环境变量混淆
@TadhgMcDonald-Jensen引发了AssertionError
哪个python,看看你正在运行什么python。 您可能安装了两个以上版本的python,并且您使用的python版本不是安装了numpy的版本。
@SUPhys,如果您使用IDLE作为不同版本的python(如3.5),您只需要使用pip3 install numpy为该版本安装numpy,但如果您使用IDLE for 2.7,那么可以尝试pip uninstall numpy然后重新安装pip install numpy。
@Sung我的cpu上有python 2.7.10,但是当我在bash shell中运行哪个python时,我得到这个:/ Users / Admin / anaconda / bin / python
标题在以下意义上具有误导性。您不希望将模块导入IDLE。您想将其导入到运行代码的python中。运行IDLE时,这当前是运行IDLE的python。要查找正在运行的python,以下内容应该可以在任何最近的python上直接或在IDE中的任何位置使用:
1import sys; print(sys.executable)
我在Windows机器上以IDLE运行它,我得到了
1C:\Programs\Python36\pythonw.exe
(w后缀是Windows特定的变体二进制文件,用于运行GUI程序而不会弹出空的控制台窗口。以下内容应省略。)
要将模块导入特定的python,必须为该特定的python安装它。最简单的方法是在控制台中运行与特定python的pip。例如,鉴于上面的可执行文件:
1C:\Programs\Python36> python -m pip install numpy
在* nix上,我可能必须首先运行python -m ensurepip来为该python安装pip本身。
关于import pip; pip.main:pip被设计为命令行实用程序,用于初始化,执行一个函数并退出。 main()是一个故意无证的内部实现细节。 pip的作者不鼓励使用它,因为它是为一次调用设计的,后面是程序退出。当内部数据与已安装文件不同步时,多次调用将无法正常工作。
这对我在Windows上工作 - 我首先使用python -m pip install --upgrade pip升级了pip
好主意。 pip变化比python本身更快。
要在不影响anaconda配置的情况下安装软件包,您可以在IDLE中使用pip:
1
2import pip
pip.main(["install","numpy"])
虽然因为IDLE在刷新率上有点慢(至少在我的mac上),但是在结束之前隐藏输出可能是一个很大的速度提升:
1
2
3
4
5
6
7
8
9
10
11import sys
import pip
import io
stdout_real = sys.stdout
sys.stdout = io.StringIO()
try:
pip.main(["install","kfksnaf"])
finally:
stdout_real.write(sys.stdout.getvalue())
sys.stdout = stdout_real
请注意,这意味着所有标准输出都将显示在错误文本之后,如果出现问题可能会造成混淆,因此请先正常尝试并且只有在它严重滞后时才执行此操作。
另一方面,似乎anaconda已经从python.org安装了许多python的功能,为了减少它对你的机器的影响你应该看看使用默认Python而不是从终端调用时的Anaconda安装虽然这可能会破坏Python的功能,但如果你想这样做,反过来可能很难转回。