当来自终端的 运行 脚本时无法导入 tensorflow,即使 tensorflow 在 jupyter notebook 和终端中工作
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 的错误消息。
但是,我可以在许多其他设置中使用 import 和 use tensorflow 而没有任何问题,例如
- 在 jupyter 笔记本中
- 当我将 toy_model.py 导入 jupyter notebook 时
- 当我从命令行使用 python 时
我尝试了很多推荐的方案(在我使用的Anaconda Navigator虚拟环境下下载Spyder,从tensorflow 2.1.0切换到tensorflow 2.0.0,下载microsoftvisual studio),none已经成功了。
对于此问题的任何帮助或见解,我将不胜感激,我将在下面进行更详细的描述。
我使用 Anaconda Navigator 在 Python 中编写代码。在 Anaconda Navigator 中,我准备了一个名为 updated_tensorflow
的环境。我用Anaconda的包管理器下载了tensorflow 2.0.0和keras 2.3.1到这个环境中
我准备了一个名为test1.ipynb
的jupyter笔记本,代码如下:
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'])
然后,我在与 toy_model1.py
相同的目录中创建了另一个 jupyter 笔记本,名称为 test2.ipynb
,代码如下:
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
None已成功。
如果能帮助我理解和修复我犯的任何错误,我将不胜感激。如果我可以从我的终端使用 运行 .py 文件而不是在 Jupyter 笔记本中专门使用 python 就好了!
即使提示错误消息的含义也会有所帮助:我什至没有正确理解 DLL 是什么。
尝试获取最新支持的 Microsoft Visual C++
听起来,通过调用 python
,您没有获得具有 tensorflow 的特定 python 安装(或者该安装中的 tensorflow 已损坏)。默认情况下,调用 python
将为您提供系统默认值(它是环境路径中的第一个,因此是第一个命中)。
我建议您准确确定您的笔记本正在使用哪个 python 解释器,并通过说
来具体调用那个解释器
/path/to/notebook/interpreter/python toy_model.py
TLDR:当我编写一个名为 toy_model.py 的小脚本并尝试使用
从命令行 运行 它时py toy_model.py
我收到一条抱怨加载 tensorflow 的错误消息。
但是,我可以在许多其他设置中使用 import 和 use tensorflow 而没有任何问题,例如
- 在 jupyter 笔记本中
- 当我将 toy_model.py 导入 jupyter notebook 时
- 当我从命令行使用 python 时
我尝试了很多推荐的方案(在我使用的Anaconda Navigator虚拟环境下下载Spyder,从tensorflow 2.1.0切换到tensorflow 2.0.0,下载microsoftvisual studio),none已经成功了。
对于此问题的任何帮助或见解,我将不胜感激,我将在下面进行更详细的描述。
我使用 Anaconda Navigator 在 Python 中编写代码。在 Anaconda Navigator 中,我准备了一个名为 updated_tensorflow
的环境。我用Anaconda的包管理器下载了tensorflow 2.0.0和keras 2.3.1到这个环境中
我准备了一个名为test1.ipynb
的jupyter笔记本,代码如下:
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'])
然后,我在与 toy_model1.py
相同的目录中创建了另一个 jupyter 笔记本,名称为 test2.ipynb
,代码如下:
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 None已成功。
如果能帮助我理解和修复我犯的任何错误,我将不胜感激。如果我可以从我的终端使用 运行 .py 文件而不是在 Jupyter 笔记本中专门使用 python 就好了!
即使提示错误消息的含义也会有所帮助:我什至没有正确理解 DLL 是什么。
尝试获取最新支持的 Microsoft Visual C++
听起来,通过调用 python
,您没有获得具有 tensorflow 的特定 python 安装(或者该安装中的 tensorflow 已损坏)。默认情况下,调用 python
将为您提供系统默认值(它是环境路径中的第一个,因此是第一个命中)。
我建议您准确确定您的笔记本正在使用哪个 python 解释器,并通过说
来具体调用那个解释器/path/to/notebook/interpreter/python toy_model.py