如何升级 NumPy?
How can I upgrade NumPy?
当我使用 Homebrew (brew
) 安装 OpenCV 时,每当我 运行 这个命令测试时我都会遇到这个问题 python -c "import cv2"
:
RuntimeError: module compiled against API version 9 but this version of numpy is 6
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: numpy.core.multiarray failed to import
我尝试升级 NumPy,但这令人困惑:
>>> import numpy
>>> print numpy.__version__
1.6.1
当我运行 brew 升级NumPy 时,我遇到了这个问题:
brew install -u numpy
Warning: numpy-1.9.1 already installed
卸载时:
sudo pip install numpy
Requirement already satisfied (use --upgrade to upgrade): numpy in ./anaconda/lib/python2.7/site-packages
我从 mac 关注了 this question and deleted Anaconda。
pip install numpy
Requirement already satisfied (use --upgrade to upgrade): numpy in /Library/Python/2.7/site-packages
但一切都没有改变。我怎样才能 link NumPy 版本到 OpenCV?
因为我们系统中安装了两个NumPy。一个是 Homebrew 安装的,第二个是 pip 安装的。所以为了解决这个问题,我们需要删除一个,使用OpenCV默认安装的NumPy。
检查路径,
import numpy
print numpy.__path__
并使用 rm
.
手动删除它
我试过 sudo pip uninstall numpy
,因为 rm
一开始没用。
希望对您有所帮助。
先卸载再安装
当您的系统上有两个版本的 NumPy 时,就会出现您提到的错误。正如你提到的,你导入的 NumPy 版本仍然没有升级,因为你试图通过 pip 升级它(它将升级 '/Library/Python/2.7/site-packages'
中现有的版本)。
但是 Python 仍然从 pre-installed 包所在的 '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy'
加载包。
要升级该版本,您必须使用 easy_install
。解决此问题的另一种方法是使用 virtualenv
并设置一个包含您需要的所有要求的新环境。
仅供参考,当您使用或导入 TensorFlow 时,可能会出现类似的错误,例如(由 NumPy 引起):
RuntimeError: module compiled against API version 0xa but this version of numpy is 0x9
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/tensorflow/__init__.py", line 23, in <module>
from tensorflow.python import *
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/__init__.py", line 60, in <module>
raise ImportError(msg)
ImportError: Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/__init__.py", line 49, in <module>
from tensorflow.python import pywrap_tensorflow
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/pywrap_tensorflow.py", line 28, in <module>
_pywrap_tensorflow = swig_import_helper()
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/pywrap_tensorflow.py", line 24, in swig_import_helper
_mod = imp.load_module('_pywrap_tensorflow', fp, pathname, description)
ImportError: numpy.core.multiarray failed to import
Error importing tensorflow. Unless you are using bazel,
you should not try to import tensorflow from its source directory;
please exit the tensorflow source tree, and relaunch your python interpreter
from there.
我遵循了 Elmira 和 Drew 的解决方案,sudo easy_install numpy
,有效!
sudo easy_install numpy
Searching for numpy
Best match: numpy 1.11.3
Removing numpy 1.8.2 from easy-install.pth file
Adding numpy 1.11.3 to easy-install.pth file
Using /usr/local/lib/python2.7/dist-packages
Processing dependencies for numpy
Finished processing dependencies for numpy
之后我可以毫无错误地使用 TensorFlow。
因为你安装了多个版本的 NumPy。
尝试 pip uninstall numpy
和 pip list | grep numpy
几次,直到您看不到 pip list | grep numpy
的输出。
然后 pip install numpy
将为您提供最新版本的 NumPy。
安装pytorch后,使用时出现类似错误:
import torch
删除 NumPy 没有帮助(我实际上重命名了 NumPy,所以在它不起作用后我又恢复了)。以下命令对我有用:
sudo pip install numpy --upgrade
sudo easy_install numpy
都一样。
sudo easy_install numpy
我的回溯
Searching for numpy
Best match: numpy 1.13.0
Adding numpy 1.13.0 to easy-install.pth file
Using /Library/Python/2.7/site-packages
Processing dependencies for numpy
这对我有用:
pip install numpy --upgrade
如果您没有遇到任何权限错误
pip install -U numpy
尝试:
pip install --user -U numpy
如果您受困于没有 root 访问权限的计算机,那么最好处理自定义 Python 安装。
Anaconda 安装非常有效:
安装后,
[bash]$ /xxx/devTools/python/anaconda/bin/pip list --format=columns |
grep numpy
numpy 1.13.3 numpydoc
0.7.0
如果您已经拥有旧版本的 NumPy,请使用:
pip install numpy --upgrade
如果还是不行,试试:
pip install numpy --upgrade --ignore-installed
更新 numpy
对于python 2
pip install numpy --upgrade
您还需要升级您的表以及 numpy 的更新版本。所以,
pip install tables --upgrade
为python3
pip3 install numpy --upgrade
同样,python3 的表格:-
pip3 install tables --upgrade
注:
您需要检查您使用的是哪个 python 版本。 python 2.7+ 的 pip 或 python 3+
的 pip3
当我使用 Homebrew (brew
) 安装 OpenCV 时,每当我 运行 这个命令测试时我都会遇到这个问题 python -c "import cv2"
:
RuntimeError: module compiled against API version 9 but this version of numpy is 6
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: numpy.core.multiarray failed to import
我尝试升级 NumPy,但这令人困惑:
>>> import numpy
>>> print numpy.__version__
1.6.1
当我运行 brew 升级NumPy 时,我遇到了这个问题:
brew install -u numpy
Warning: numpy-1.9.1 already installed
卸载时:
sudo pip install numpy
Requirement already satisfied (use --upgrade to upgrade): numpy in ./anaconda/lib/python2.7/site-packages
我从 mac 关注了 this question and deleted Anaconda。
pip install numpy
Requirement already satisfied (use --upgrade to upgrade): numpy in /Library/Python/2.7/site-packages
但一切都没有改变。我怎样才能 link NumPy 版本到 OpenCV?
因为我们系统中安装了两个NumPy。一个是 Homebrew 安装的,第二个是 pip 安装的。所以为了解决这个问题,我们需要删除一个,使用OpenCV默认安装的NumPy。
检查路径,
import numpy
print numpy.__path__
并使用 rm
.
我试过 sudo pip uninstall numpy
,因为 rm
一开始没用。
希望对您有所帮助。
先卸载再安装
当您的系统上有两个版本的 NumPy 时,就会出现您提到的错误。正如你提到的,你导入的 NumPy 版本仍然没有升级,因为你试图通过 pip 升级它(它将升级 '/Library/Python/2.7/site-packages'
中现有的版本)。
但是 Python 仍然从 pre-installed 包所在的 '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy'
加载包。
要升级该版本,您必须使用 easy_install
。解决此问题的另一种方法是使用 virtualenv
并设置一个包含您需要的所有要求的新环境。
仅供参考,当您使用或导入 TensorFlow 时,可能会出现类似的错误,例如(由 NumPy 引起):
RuntimeError: module compiled against API version 0xa but this version of numpy is 0x9
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/tensorflow/__init__.py", line 23, in <module>
from tensorflow.python import *
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/__init__.py", line 60, in <module>
raise ImportError(msg)
ImportError: Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/__init__.py", line 49, in <module>
from tensorflow.python import pywrap_tensorflow
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/pywrap_tensorflow.py", line 28, in <module>
_pywrap_tensorflow = swig_import_helper()
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/pywrap_tensorflow.py", line 24, in swig_import_helper
_mod = imp.load_module('_pywrap_tensorflow', fp, pathname, description)
ImportError: numpy.core.multiarray failed to import
Error importing tensorflow. Unless you are using bazel,
you should not try to import tensorflow from its source directory;
please exit the tensorflow source tree, and relaunch your python interpreter
from there.
我遵循了 Elmira 和 Drew 的解决方案,sudo easy_install numpy
,有效!
sudo easy_install numpy
Searching for numpy
Best match: numpy 1.11.3
Removing numpy 1.8.2 from easy-install.pth file
Adding numpy 1.11.3 to easy-install.pth file
Using /usr/local/lib/python2.7/dist-packages
Processing dependencies for numpy
Finished processing dependencies for numpy
之后我可以毫无错误地使用 TensorFlow。
因为你安装了多个版本的 NumPy。
尝试 pip uninstall numpy
和 pip list | grep numpy
几次,直到您看不到 pip list | grep numpy
的输出。
然后 pip install numpy
将为您提供最新版本的 NumPy。
安装pytorch后,使用时出现类似错误:
import torch
删除 NumPy 没有帮助(我实际上重命名了 NumPy,所以在它不起作用后我又恢复了)。以下命令对我有用:
sudo pip install numpy --upgrade
sudo easy_install numpy
都一样。
sudo easy_install numpy
我的回溯
Searching for numpy
Best match: numpy 1.13.0
Adding numpy 1.13.0 to easy-install.pth file
Using /Library/Python/2.7/site-packages
Processing dependencies for numpy
这对我有用:
pip install numpy --upgrade
如果您没有遇到任何权限错误
pip install -U numpy
尝试:
pip install --user -U numpy
如果您受困于没有 root 访问权限的计算机,那么最好处理自定义 Python 安装。
Anaconda 安装非常有效:
安装后,
[bash]$ /xxx/devTools/python/anaconda/bin/pip list --format=columns | grep numpy
numpy 1.13.3 numpydoc 0.7.0
如果您已经拥有旧版本的 NumPy,请使用:
pip install numpy --upgrade
如果还是不行,试试:
pip install numpy --upgrade --ignore-installed
更新 numpy
对于python 2
pip install numpy --upgrade
您还需要升级您的表以及 numpy 的更新版本。所以,
pip install tables --upgrade
为python3
pip3 install numpy --upgrade
同样,python3 的表格:-
pip3 install tables --upgrade
注:
您需要检查您使用的是哪个 python 版本。 python 2.7+ 的 pip 或 python 3+
的 pip3