无法在python3和ImportError中导入tensorflow:此软件包在Python 3上不可访问

时间:2019-04-05 02:18:54

标签: python python-3.x macos tensorflow

我正在尝试在Macbook中使用tensorflow进行研究。我使用pip3在系统中安装tensorflow(不在虚拟环境中)。

首先,我只想验证tensorflow是否可以通过python3在终端中正确导入。但是,有时在导入时遇到以下问题。

>>>import tensorflow as tf
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/cyan/Library/Python/3.5/lib/python/site-packages/tensorflow/__init__.py", line 24, in <module>
from tensorflow.python import pywrap_tensorflow  # pylint: disable=unused-import
  File "/Users/cyan/Library/Python/3.5/lib/python/site-packages/tensorflow/python/__init__.py", line 47, in <module>
import numpy as np
  File "/Library/Python/2.7/site-packages/numpy/__init__.py", line 142, in <module>
from . import add_newdocs
  File "/Library/Python/2.7/site-packages/numpy/add_newdocs.py", line 13, in <module>
from numpy.lib import add_newdoc
  File "/Library/Python/2.7/site-packages/numpy/lib/__init__.py", line 8, in <module>
from .type_check import *
  File "/Library/Python/2.7/site-packages/numpy/lib/type_check.py", line 11, in <module>
import numpy.core.numeric as _nx
  File "/Library/Python/2.7/site-packages/numpy/core/__init__.py", line 14, in <module>
from . import multiarray
ImportError: dlopen(/Library/Python/2.7/site-packages/numpy/core/multiarray.so, 2): Symbol not found: _PyBuffer_Type
  Referenced from: /Library/Python/2.7/site-packages/numpy/core/multiarray.so
  Expected in: flat namespace in /Library/Python/2.7/site-packages/numpy/core/multiarray.so

仅当我在执行python3之前首先运行以下代码时,才能解决此错误

unset PYTHONPATH

如果没有取消设置PYTHONPATH,使用

检查pip3的版本时也会发现错误。
pip3 --version

错误如下所示。

>> pip3 --version
Traceback (most recent call last):
  File "/usr/local/bin/pip3", line 6, in <module>
from pip._internal import main
  File "/Library/Python/2.7/site-packages/pip/_internal/__init__.py", line 19, in <module>
from pip._vendor.urllib3.exceptions import DependencyWarning
  File "/Library/Python/2.7/site-packages/pip/_vendor/urllib3/__init__.py", line 8, in <module>
from .connectionpool import (
  File "/Library/Python/2.7/site-packages/pip/_vendor/urllib3/connectionpool.py", line 11, in <module>
from .exceptions import (
  File "/Library/Python/2.7/site-packages/pip/_vendor/urllib3/exceptions.py", line 2, in <module>
from .packages.six.moves.http_client import (
  File "/Library/Python/2.7/site-packages/pip/_vendor/urllib3/packages/six.py", line 203, in load_module
mod = mod._resolve()
  File "/Library/Python/2.7/site-packages/pip/_vendor/urllib3/packages/six.py", line 115, in _resolve
return _import_module(self.mod)
  File "/Library/Python/2.7/site-packages/pip/_vendor/urllib3/packages/six.py", line 82, in _import_module
__import__(name)
  File "/Library/Python/2.7/site-packages/http/__init__.py", line 7, in <module>
raise ImportError('This package should not be accessible on Python 3. '
ImportError: This package should not be accessible on Python 3. Either you are trying to run from the python-future src folder or your installation of python-future is corrupted.

我认为每次都取消设置PYTHONPATH太不方便了,那么对此问题有什么解决方案吗?我还想在其他文本编辑器(例如Sublime和Pycharm)中导入tensorflow,所以我真的不确定下一步该怎么做。

1 个答案:

答案 0 :(得分:0)

我尝试了相同的情况。对我来说很好。在第一个错误中,您的python安装似乎被搞砸了。如果在终端中使用python3,则不应引用2.7库。

我也不认为您每次都需要取消设置PYTHONPATH。第一件事是您不需要设置PYTHONPATH。似乎安装出现问题。

您在Mac中使用自制软件来安装软件包。如果没有,我会说使用自制软件,它会起到魅力。由于它适当地增加了依赖性。

谢谢, 灰烬