无法为 python2 安装 numpy

无法为 python2 安装 numpy

我以前曾使用过 numpy。不知道发生了什么,但现在我收到导入错误:

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

我尝试使用 pip 和 apt 卸载并重新安装 numpy (导入错误:模块名为 numpy),如其他答案中所建议的那样,但这并没有解决我的问题。它说我有最新版本的numpy:

$ sudo apt install python-numpy
Reading package lists... Done
Building dependency tree       
Reading state information... Done
python-numpy is already the newest version (1:1.13.3-2ubuntu1).
The following packages were automatically installed and are no longer required:
  libllvm6.0 libllvm6.0:i386 libllvm7 libllvm7:i386
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 79 not upgraded.
$ python -c "import numpy"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named numpy

顺便提一下,numpy 在 python3 中运行良好。

答案1

在 pip 中安装应用程序时,必须指定 pip 版本,或指定系统或用户版本。(pip2 适用于 Python2,pip3 适用于 Python3。)此外,还有系统和用户实例。安装 Python 库时,有时必须指定它是适用于用户还是适用于整个系统。例如

pip2 install --user numpy
sudo -H pip2 install --system numpy

此外,pip2 和 pip3 是分开的,不会交叉。

$:~/$ pip2 install --user numpy
    Collecting numpy
      Downloading https://files.pythonhosted.org/packages/d7/b1/3367ea1f372957f97a6752ec725b87886e12af1415216feec9067e31df70/numpy-1.16.5-cp27-cp27mu-manylinux1_x86_64.whl (17.0MB)
        100% |████████████████████████████████| 17.0MB 83kB/s 
    Installing collected packages: numpy
    Successfully installed numpy-1.16.5
$:~/$ pip3 install --user numpy
        Collecting numpy
          Downloading https://files.pythonhosted.org/packages/d2/ab/43e678759326f728de861edbef34b8e2ad1b1490505f20e0d1f0716c3bf4/numpy-1.17.4-cp36-cp36m-manylinux1_x86_64.whl (20.0MB)
            100% |████████████████████████████████| 20.0MB 83kB/s 
        Installing collected packages: numpy
        Successfully installed numpy-1.17.4

经过一些测试,我发现它sudo apt install python-numpy为你安装了 python3。对我来说,它为 python2 而不是 python3 安装了它。原因是我的系统默认使用 python2 作为主 python。对于某些系统,python3 是要安装库的默认 python。所以,我真的建议你习惯于pip2安装pip3库。

答案2

事实证明,我的系统中有两个 python 安装。一个在/usr/bin,另一个在/usr/local/bin/,前者是系统版本,后者是我前段时间安装的。我使用 pip 或 apt-get 安装和重新安装的所有软件包都与 python 的系统版本相关联,而 python 的路径指向自定义安装。因此,每当我从终端打开 python 时,我基本上都在调用自定义安装,而所有软件包都安装在系统版本中。这导致导入不同软件包时出现错误。

一种解决方案是简单地删除本地安装。另一种解决方案(我采用的方法是将符号链接重定向到系统版本)如下:sudo ln -sf /usr/bin/python /usr/local/bin/python

这完成了工作。

相关内容