【问题标题】:How to import/open numpy module to IDLE如何将 numpy 模块导入/打开到 IDLE
【发布时间】:2023-03-08 15:56:01
【问题描述】:

我想将 numpy 用于我必须运行的程序,并且我想在 IDLE IDE 中执行它。我已经从网上安装了 numpy 二进制文件,但是当我尝试在我的脚本中运行“import numpy”然后运行一些 numpy 命令时,python shell 返回一个错误提示

Traceback (most recent call last):
  File "/Users/Admin/Desktop/NumpyTest.py", line 1, in <module>
    import numpy as np
ImportError: No module named numpy

我曾尝试使用 pip 安装 numpy,但是当我在 bash shell 中运行 pip install numpy 时,它显示

Requirement 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,你需要运行你安装 numpy 的那个,或者可能与环境变量混在一起
  • @TadhgMcDonald-Jensen 引发了 AssertionError
  • 'which python' 看看你正在运行什么 python。很可能你安装了两个以上的python版本,而你使用的python版本不是安装了numpy的那个。
  • @SUPhys,如果您将 IDLE 用于不同版本的 python(如 3.5),您只需要使用pip3 install numpy 为该版本安装 numpy,但如果您使用 IDLE 用于 2.7,那么可以尝试pip uninstall numpy 然后重新安装pip install numpy

标签: python numpy anaconda python-idle


【解决方案1】:

要在不影响 anaconda 配置的情况下安装软件包,您可以使用pip from within IDLE:

import pip
pip.main(["install","numpy"])

在以后的版本中,这不再直接暴露,since doing this in production code is bad. 但您仍然可以导入内部来安装模块。

from pip._internal.main import main as pip_main
pip_main(["install","numpy"])

虽然因为 IDLE 的刷新率可能会有点慢(至少在我的 mac 上),但将输出隐藏到最后可能会大大提高速度:

import 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 的许多功能,为了减少它对您的机器的影响,您应该查看Use Default Python Rather than Anaconda Installation When Called from the Terminal 尽管这可能会破坏功能如果你想这样做的话,anaconda 可能会反过来让你很难切换回来。

【讨论】:

    【解决方案2】:

    我遇到了错误

    将 numpy 导入为 npa

    Traceback(最近一次调用最后一次): 文件“”,第 1 行,在 将 numpy 导入为 np ModuleNotFoundError:没有名为“numpy”的模块

    我从 cmd (admin) 转到下面的路径 C:\Users\\AppData\Local\Programs\Python\Python38-32\Scripts

    然后运行命令:

    pip 安装 numpy

    这解决了我的问题。您还可以运行以下命令以升级 pip python -m pip install --upgrade pip

    安装后我可以在 C:\Users\\AppData\Local\Programs\Python\Python38-32\Scripts 下看到“f2py.exe”

    【讨论】:

      【解决方案3】:

      标题在以下意义上具有误导性。您不想将模块导入 IDLE。你想将它导入到运行你的代码的 python 中。运行 IDLE 时,这与当前运行 IDLE 的 python 相同。要查找正在运行的 python,以下内容应该可以在任何最近的 python 上的任何地方直接运行或在 IDE 中运行:

      import sys; print(sys.executable)
      

      在我的 Windows 机器上以 IDLE 运行,我得到了

      C:\Programs\Python36\pythonw.exe
      

      w 后缀是一个特定于 Windows 的变体二进制文件,用于运行 GUI 程序不会弹出一个空的控制台窗口。下面应该省略它。)

      要将模块导入特定的 python,必须为特定的 python 安装它。最简单的方法是在控制台中使用该特定 python 运行 pip。例如,给定上面的可执行文件:

      C:\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 本身更快。
      猜你喜欢
      • 2018-04-01
      • 2011-12-19
      • 2020-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-14
      相关资源
      最近更新 更多