Mac Python IDLE导入tensorflow错误(但是在命令行中,tensorflow工作正常)

时间:2016-10-30 00:26:23

标签: macos python-2.7 python-3.x tensorflow python-idle

我有一台运行MacOS Sierra 10.12的Macbook笔记本电脑。

所以我在这里按照“Pip安装”说明进行操作:https://www.tensorflow.org/versions/r0.11/get_started/os_setup.html#test-the-tensorflow-installation

当我使用在命令行中使用“python”建议的演示模型来测试安装时,如下所示: https://www.tensorflow.org/versions/r0.11/get_started/os_setup.html#test-the-tensorflow-installation, 这一切似乎都在我的机器继续前进并训练模型。

但是当我为Python 2.7打开IDLE并输入“import tensorflow as tf”时,我收到一个回溯错误“ImportError:No module called tensorflow”

当我打开IDLE for Python 3.5并输入“import tensorflow as tf”时,我得到一个很长的错误,结尾于:

ImportError:dlopen(/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/tensorflow/python/_pywrap_tensorflow.so,10):未加载库:@rpath /libcudart.8.0.dylib   参考自:/ Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/tensorflow/python/_pywrap_tensorflow.so   原因:未找到图像

所以在我的外行人的理解中,我已经以某种方式安装了Tensorflow,我可以通过终端中的命令行访问它。但是我对不同版本的Python的两个IDLE都有困难。

我希望能够在IDLE(Python 2.7或3.4)中为Tensorflow编写和运行Python脚本,但我不确定如何解决这些错误。

PS我也是命令行的新手。我的生活,安装一些东西只是意味着点击一些图标或用我的鼠标将图标拖入其他东西。这是一个艰难的几天教自己如何做到这一点。

非常感谢您提供的任何帮助。

2 个答案:

答案 0 :(得分:0)

下载并安装PyCharm(IDE),直接从他们的插件导入tensorflow。

安装包

  1. 在项目设置的Project Interpreter页面中,选择 所需的Python解释器或虚拟环境。
  2. 点击。
  3. 在打开的“可用包”对话框中,选择所需的对话框 列表中的包。 ...
  4. 如果需要,请选中以下复选框:
  5. ...单击“安装包”。

答案 1 :(得分:0)

(这是一个请求和问题,而不是一个答案,但我需要代码格式化来询问它。)除了一些预期的或不可避免的(和已知的)差异之外,python很少在读取时执行不同的代码代码正常,当IDLE要求它执行它时。因此你的报告让我很困惑。请将以下内容剪切并粘贴到文件中,例如testtf.py。然后在控制台中使用python运行该文件。 (python3 <path to>/testtf.py

import sys

try:
    import tensorflow
    print(tensorflow)
    del tensorflow, sys.modules['tensorflow']
except ImportError as e:
    print(e)

try:
    exec('import tensorflow', globals())
    print(tensorflow)
    del tensorflow, sys.modules['tensorflow']
except ImportError as e:
    print(e)

try:
    exec(compile('import tensorflow', 'shell', 'exec'), globals())
    print(tensorflow)
    del tensorflow, sys.modules['tensorflow']
except ImportError as e:
    print(e)

每个块应打印类似<module 'tensorflow' from '/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/tensorflow/__init__.py'>的内容。你到底得到了什么?

此代码尝试3种等效方式导入模块。第一个是通常输入的内容和你说的内容(在控制台中)。第二个或第三个是python在内部执行的操作,第三个是IDLE如何将用户代码提交到python。它们应该是等价的,但似乎不是,所以让我们删除IDLE作为一个因素。