我在 github 上找到了一个聊天机器人程序,想运行这个程序以更好地理解。但是每次我尝试运行这个程序时,它都会说
没有名为“tensorflow.contrib”的模块
我应该怎么做才能修复这个错误?
小智 1
其他专家的解释:一个有趣的发现,我希望这可以帮助在 Anaconda 或类似集成环境下开发的其他人,在这些环境中,您的程序不是直接从命令行运行的,例如“python myprogram.py”。
该问题可能是由程序本身名为tensorflow.py 引起的。它运行在一个环境中,它不是作为“主”模块启动的,而是由另一个 Python 程序(在本例中为 anaconda)加载的。
当以这种方式加载 python 程序时,解释器将其作为模块读取,并将其放入模块列表中(与文件同名),因此现在 sys.modules["tensorflow"] 指向加载的用户程序(而不是安装的张量流模块)。当遇到“importtensorflow as tf”行时,Python会看到“tensorflow”已经导入,并且简单地执行tf = sys.modules [“tensorflow”],这是对您自己的tensorflow.py的引用(已经是一个问题,但你还没有 tf.enable_eager_execution() - 如果你这样做了,它会失败,因为你的tensorflow.py没有这样的函数)。
现在,有趣的部分:
import tensorflow.contrib.eager as tfe
Run Code Online (Sandbox Code Playgroud)
Python 已经导入了“tensorflow”(您的模块!),因此它希望在与加载的 tensorflow.py 相同的目录中找到任何子模块。特别是,它期望该目录是一个 Python 包(其中有init .py),但显然不是,因此出现“...不是包”错误消息。
| 归档时间: |
|
| 查看次数: |
16788 次 |
| 最近记录: |