在 Heroku 上使用 python 导入错误 运行 张量流?
ImportError running tensorflow with python on Heroku?
我试图在我的 Heroku 实例中导入 tensorflow,但我不断收到以下错误:
File "/app/tools/inception/classify_image.py", line 45, in <module>
2016-06-23T19:08:18.090957+00:00 app[clock.1]: import tensorflow as tf
2016-06-23T19:08:18.090979+00:00 app[clock.1]: File "/app/.heroku/python/lib/python2.7/site-packages/tensorflow/__init__.py", line 23, in <module>
2016-06-23T19:08:18.091005+00:00 app[clock.1]: from tensorflow.python import *
2016-06-23T19:08:18.091011+00:00 app[clock.1]: File "/app/.heroku/python/lib/python2.7/site-packages/tensorflow/python/__init__.py", line 45, in <module>
2016-06-23T19:08:18.091050+00:00 app[clock.1]: from tensorflow.python import pywrap_tensorflow
2016-06-23T19:08:18.091068+00:00 app[clock.1]: File "/app/.heroku/python/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow.py", line 28, in <module>
2016-06-23T19:08:18.091112+00:00 app[clock.1]: _pywrap_tensorflow = swig_import_helper()
2016-06-23T19:08:18.091116+00:00 app[clock.1]: File "/app/.heroku/python/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow.py", line 24, in swig_import_helper
2016-06-23T19:08:18.091136+00:00 app[clock.1]: _mod = imp.load_module('_pywrap_tensorflow', fp, pathname, description)
2016-06-23T19:08:18.091166+00:00 app[clock.1]: ImportError: /app/.heroku/python/lib/python2.7/site-packages/tensorflow/python/_pywrap_tensorflow.so: invalid ELF header
有人知道这是为什么吗?我的 requirements.txt 中有以下行:
https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl
我不确定无效的 ELF header 是什么意思。我是否遗漏了依赖关系或其他什么?
ImportError: /app/.heroku/python/lib/python2.7/site-packages/tensorflow/python/_pywrap_tensorflow.so: invalid ELF header
最可能的原因是您试图将 x86_64
TF 共享库加载到 i386
Python 可执行文件中。
您可以通过运行
验证
file -L /app/.heroku/python/lib/python2.7/site-packages/tensorflow/python/_pywrap_tensorflow.so
(应该产生 ELF 64-bit LSB shared object, x86-64, version 1 (SYSV) ...
)和
file -L /app/.heroku/python/bin/python2.7
(应该说 ELF 64-bit LSB executable, x86-64, version 1 (SYSV), ...
,但可能会说 ELF 32-bit LSB executable ...
)。
更新:
_pywrap_tensorflow.so: Mach-O 64-bit x86_64 dynamically linked shared library
这是您尝试加载到 Linux Python 中的 MacOS 版本。您需要 Linux 版本的 tensorflow。
我试图在我的 Heroku 实例中导入 tensorflow,但我不断收到以下错误:
File "/app/tools/inception/classify_image.py", line 45, in <module>
2016-06-23T19:08:18.090957+00:00 app[clock.1]: import tensorflow as tf
2016-06-23T19:08:18.090979+00:00 app[clock.1]: File "/app/.heroku/python/lib/python2.7/site-packages/tensorflow/__init__.py", line 23, in <module>
2016-06-23T19:08:18.091005+00:00 app[clock.1]: from tensorflow.python import *
2016-06-23T19:08:18.091011+00:00 app[clock.1]: File "/app/.heroku/python/lib/python2.7/site-packages/tensorflow/python/__init__.py", line 45, in <module>
2016-06-23T19:08:18.091050+00:00 app[clock.1]: from tensorflow.python import pywrap_tensorflow
2016-06-23T19:08:18.091068+00:00 app[clock.1]: File "/app/.heroku/python/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow.py", line 28, in <module>
2016-06-23T19:08:18.091112+00:00 app[clock.1]: _pywrap_tensorflow = swig_import_helper()
2016-06-23T19:08:18.091116+00:00 app[clock.1]: File "/app/.heroku/python/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow.py", line 24, in swig_import_helper
2016-06-23T19:08:18.091136+00:00 app[clock.1]: _mod = imp.load_module('_pywrap_tensorflow', fp, pathname, description)
2016-06-23T19:08:18.091166+00:00 app[clock.1]: ImportError: /app/.heroku/python/lib/python2.7/site-packages/tensorflow/python/_pywrap_tensorflow.so: invalid ELF header
有人知道这是为什么吗?我的 requirements.txt 中有以下行:
https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl
我不确定无效的 ELF header 是什么意思。我是否遗漏了依赖关系或其他什么?
ImportError: /app/.heroku/python/lib/python2.7/site-packages/tensorflow/python/_pywrap_tensorflow.so: invalid ELF header
最可能的原因是您试图将 x86_64
TF 共享库加载到 i386
Python 可执行文件中。
您可以通过运行
验证file -L /app/.heroku/python/lib/python2.7/site-packages/tensorflow/python/_pywrap_tensorflow.so
(应该产生 ELF 64-bit LSB shared object, x86-64, version 1 (SYSV) ...
)和
file -L /app/.heroku/python/bin/python2.7
(应该说 ELF 64-bit LSB executable, x86-64, version 1 (SYSV), ...
,但可能会说 ELF 32-bit LSB executable ...
)。
更新:
_pywrap_tensorflow.so: Mach-O 64-bit x86_64 dynamically linked shared library
这是您尝试加载到 Linux Python 中的 MacOS 版本。您需要 Linux 版本的 tensorflow。