【问题标题】:can not import tensorflow in pydev or the working directory无法在 pydev 或工作目录中导入 tensorflow
【发布时间】:2016-11-30 02:46:57
【问题描述】:

我是 python 和 pydev 的新手。我有 tensorflow 源,并且能够使用 python3 /pathtoexamplefile.py 运行示例文件。我想尝试通过 pydev 中的 word2vec_basic.py 代码。调试器不断抛出 文件“/Users/me/workspace/tensorflow/tensorflow/python/init.py”,第 45 行,在 从 tensorflow.python 导入 pywrap_tensorflow ImportError: 无法导入名称'pywrap_tensorflow'

我认为这与工作目录有关。我可以从我的主目录运行 python3 -c 'import tensorflow'。但是,一旦我输入 /Users/me/workspace/tensorflow,该命令将引发相同的错误,引用相同的第 45 行。

有人可以帮助我完成这部分吗?谢谢。

【问题讨论】:

  • 请添加以下信息以帮助您:pydev 包资源管理器的屏幕截图(查看您的项目的结构)和完整的堆栈跟踪(不仅仅是最后一条消息)。
  • 已添加屏幕截图。

标签: python-3.x tensorflow pydev


【解决方案1】:

尝试做两件事:

  1. 更新到 PyDev 5.4.0 并启用对使用“-m”标志运行的支持(在 Preferences > PyDev > Run)。

  2. 在运行 > 运行配置 > 选择启动并更改工作目录为项目位置。

然后,尝试再次运行它。如果仍然失败,请发布您的 full 堆栈跟踪...此外,树的屏幕截图不应扩展 tensorflow 的所有源(即:我对与项目和源文件夹,以了解您如何在 PyDev 中进行 PYTHONPATH 配置,而不是 tensorflow 模块的内部内容)。

【讨论】:

  • "选择启动并将工作目录更改为项目位置。"我选择了“${project_loc:/selected project name}”的默认值。这是你的意思吗?现在我得到一个简单的单行转储:/Library/Frameworks/Python.framework/Versions/3.4/bin/python3.4: Error while found spec for 'tensorflow.examples.tutorials.word2vec.word2vec_basic' (:无法导入名称'pywrap_tensorflow')
  • eclipse 只需执行此行:/Library/Frameworks/Python.framework/Versions/3.4/bin/python3.4 -u /Users/me/workspace/tensorflow/tensorflow/examples/tutorials/word2vec /word2vec_basic.py,它在 eclipse 之外几乎可以在任何目录中完美运行。我尝试将启动配置工作目录设置为几个不同的目录,但它总是因 ImportError 失败:无法导入名称'pywrap_tensorflow'。在 Eclipse 和命令行中运行还有什么不同?
  • 我发现代码在 Eclipse 中运行方式与从命令行运行方式不同。在 eclipse 中,它运行所有的 init.py 甚至那些带有可执行文件的父包的文件。从命令行运行时,不会发生这种情况。 init.py 是如何工作的?为什么有区别,我可以让eclipse跳过父包init.py,所以它就像从命令行一样工作吗?
【解决方案2】:

好的,问题是整个tensorflow源码树都在eclipse项目里面。是去源代码树的其他分支还是去安装的 tensorflow 模块,这很困惑。我创建了一个单独的 pydev 项目,其中只有 word2vec 目录,它现在在 eclipse 中运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-25
    • 1970-01-01
    • 1970-01-01
    • 2011-03-06
    • 2023-03-31
    • 2012-10-24
    • 2020-07-26
    相关资源
    最近更新 更多