我编写了简单的 MNIST tensorflow 代码...
当我使用 PyCharm 运行代码时,代码执行得非常好。
但实际上,我想使用 python ./mnist.py 命令在终端中运行此脚本,因此当我在终端中运行代码时,出现以下错误。
dyld: warning, LC_RPATH $ORIGIN/../../_solib_darwin_x86_64/_U_S_Stensorflow_Spython_C_Upywrap_Utensorflow_Uinternal.so___Utensorflow in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so being ignored in restricted program because it is a relative path
Traceback (most recent call last):
File "./model_load.py", line 10, in <module>
import tensorflow as tf
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/tensorflow/__init__.py", line 24, in <module>
from tensorflow.python import *
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/tensorflow/python/__init__.py", line 52, in <module>
from tensorflow.core.framework.graph_pb2 import *
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/tensorflow/core/framework/graph_pb2.py", line 6, in <module>
from google.protobuf import descriptor as _descriptor
ImportError: No module named google.protobuf
人们说这与 OSX 有关。有关于 LC_RPATH
的警告。
现在我想知道错误是否是由于 ImportError
或 LC_RPATH
警告
如果ImportError
和警告是一个单独的问题。
如何解决这个问题?
我使用的是 osx Mojave
、pyhton2.7
和 tensorflow 1.5.0
最佳答案
我解决了我的问题。错误和警告是独立的。
无论是否出现警告,Mac OS 都可以在终端中运行 TensorFlow。
主要问题是 python 无法识别 google.protobuf 模块,即使它已安装......
首先检查 protobuf 模块和 google 模块是否已安装。
pip install google
和pip install protobuf
如果输入两个命令后出现相同的错误,则意味着模块已安装,但 python 找不到它。所以我们需要修改模块,让python能够识别它。
移动到Python包的安装目录。
就我而言 /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
。
在此目录中找到 google 目录并检查里面有哪些文件。
就我而言,仅存在 protobuf
。
这就是Python找不到google.protobuf模块的原因。
我们需要添加__init__.py
文件,以便python可以在目录中找到模块。
因此,我在 google
文件夹中添加空的 __init__.py
文件,就可以解决问题。
希望和我一样遇到问题的人可以用上面的方法解决。
关于python - 在 OSX 中运行 Tensorflow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54285619/