![](/img/trans.png)
[英]Tensorflow works in Python terminal but neither in notebook jupyter nor in Ipython
[英]Can't import tensorflow when run script from terminal, even though tensorflow works in jupyter notebook and terminal
TLDR:当我编写一个名为 toy_model.py 的小脚本并尝试从命令行运行它时
py toy_model.py
我收到一条错误消息,抱怨加载 tensorflow。
但是,我可以在许多其他设置中使用导入和使用 tensorflow 没有任何问题,例如
我已经尝试了很多推荐的解决方案(在我正在使用的 Anaconda Navigator 虚拟环境中下载 Spyder,从 tensorflow 2.1.0 切换到 tensorflow 和没有成功的 Visual Studio 2.0。
对于这个问题的任何帮助或见解,我将不胜感激,我将在下面更详细地描述。
我使用 Anaconda Navigator 在 Python 中编码。 在 Anaconda Navigator 中,我准备了一个名为updated_tensorflow
的环境。 我使用 Anaconda 的 package 管理器将 tensorflow 2.0.0 和 keras 2.3.1 下载到此环境中。
我准备了一个名为test1.ipynb
的 jupyter notebook,代码如下:
import numpy as np
import matplotlib.pyplot as plt
import tensorflow as tf
import keras
model = tf.keras.Sequential([
tf.keras.layers.Dense(1, input_shape=(10,))])
model.compile(optimizer='adam',
loss= 'sparse_categorical_crossentropy', #should be 'sparse_categorical_crossentropy' b/c one-hot encoded
metrics=['accuracy'])
model.predict([[1,2,3,4,5,6,7,8,9,10], [-1,2,-3,4,-5,6,-7,8,-9,10]])
当我从环境updated_tensorflow
运行test1.ipynb
时,没有问题。
在终端中,我进入环境updated_tensorflow
,并通过在命令行中键入python
开始使用 python。 我输入了与test1.ipynb
相同的代码,没有任何问题。
我创建了一个名为toy_model.py
的文件,其中包含以下代码:
import numpy as np
import matplotlib.pyplot as plt
import tensorflow as tf
import keras
model = tf.keras.Sequential([
tf.keras.layers.Dense(1, input_shape=(10,))])
model.compile(optimizer='adam',
loss= 'sparse_categorical_crossentropy', #should be 'sparse_categorical_crossentropy' b/c one-hot encoded
metrics=['accuracy'])
然后,我在与test2.ipynb
toy_model1.py
代码如下:
from toy_model1 import *
model.predict([[1,2,3,4,5,6,7,8,9,10], [-1,2,-3,4,-5,6,-7,8,-9,10]])
这个单元运行没有问题。
最后,在同一个目录中,我生成了一个名为toy_model.py
的小文件,其中包含代码
import numpy as np
import matplotlib.pyplot as plt
import tensorflow as tf
import keras
model = tf.keras.Sequential([
tf.keras.layers.Dense(1, input_shape=(10,))])
model.compile(optimizer='adam',
loss= 'sparse_categorical_crossentropy', #should be 'sparse_categorical_crossentropy' b/c one-hot encoded
metrics=['accuracy'])
model.predict([[1,2,3,4,5,6,7,8,9,10], [-1,2,-3,4,-5,6,-7,8,-9,10]])
然后在我的终端中,仍然在环境updated_tensorflow
中,我移动到包含toy_model.py
的目录并尝试运行它
py toy_model.py
我收到以下消息,表明我无法导入 tensorflow:
Traceback (most recent call last):
File "C:\Users\me\Anaconda3\Anaconda3\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 58, in <module>
from tensorflow.python.pywrap_tensorflow_internal import *
File "C:\Users\me\Anaconda3\Anaconda3\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 28, in <module>
_pywrap_tensorflow_internal = swig_import_helper()
File "C:\Users\me\Anaconda3\Anaconda3\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 24, in swig_import_helper
_mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
File "C:\Users\me\Anaconda3\Anaconda3\lib\imp.py", line 242, in load_module
return load_dynamic(name, filename, file)
File "C:\Users\me\Anaconda3\Anaconda3\lib\imp.py", line 342, in load_dynamic
return _load(spec)
ImportError: DLL load failed: The specified module could not be found.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "toy_model.py", line 3, in <module>
import tensorflow as tf
File "C:\Users\me\Anaconda3\Anaconda3\lib\site-packages\tensorflow\__init__.py", line 41, in <module>
from tensorflow.python.tools import module_util as _module_util
File "C:\Users\me\Anaconda3\Anaconda3\lib\site-packages\tensorflow\python\__init__.py", line 50, in <module>
from tensorflow.python import pywrap_tensorflow
File "C:\Users\me\Anaconda3\Anaconda3\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 69, in <module>
raise ImportError(msg)
ImportError: Traceback (most recent call last):
File "C:\Users\me\Anaconda3\Anaconda3\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 58, in <module>
from tensorflow.python.pywrap_tensorflow_internal import *
File "C:\Users\me\Anaconda3\Anaconda3\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 28, in <module>
_pywrap_tensorflow_internal = swig_import_helper()
File "C:\Users\me\Anaconda3\Anaconda3\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 24, in swig_import_helper
_mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
File "C:\Users\me\Anaconda3\Anaconda3\lib\imp.py", line 242, in load_module
return load_dynamic(name, filename, file)
File "C:\Users\me\Anaconda3\Anaconda3\lib\imp.py", line 342, in load_dynamic
return _load(spec)
ImportError: DLL load failed: The specified module could not be found.
Failed to load the native TensorFlow runtime.
See https://www.tensorflow.org/install/errors
for some common reasons and solutions. Include the entire stack trace
above this error message when asking for help.
我在尝试解决此问题时所遵循的一些建议包括:
确保 pip 和设置工具已更新
使用 pip 卸载并重新安装 tensorflow 和 keras
使用 conda 卸载和重新安装 tensorflow 和 keras
从 tensorflow 2.1.0 切换到 tensorflow 到 2.0.0
在我的基础 anaconda 环境上安装 tensorflow 和 keras
在我的机器上安装 tensorflow 和 keras
在我的updated_tensorflow
环境中下载 Spyder
下载 Microsoft Visual Studios 都没有成功。
我将非常感谢在理解和修复我所犯的任何错误方面提供的任何帮助。 如果我可以在终端中使用 run.py 文件,而不是在 Jupyter 笔记本中专门使用 python,那就太好了!
即使是关于错误消息含义的提示也会有所帮助:我没有正确理解 DLL 甚至是什么。
听起来,通过调用python
,您没有获得具有 tensorflow 的特定 python 安装(或 Z2C39BC19B761AC36FEDZ042 安装已损坏)76D146。 默认情况下,调用python
将为您提供系统默认值(它是环境路径中的第一个,所以这是第一个命中)。
我建议准确确定您的笔记本正在使用哪个 python 解释器,并通过说
/path/to/notebook/interpreter/python toy_model.py
尝试获取最新支持的 Microsoft Visual C++
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.