首页 > 解决方案 > 为 Python 编译 CPU 模块时出错

问题描述

系统信息

我是否编写了自定义代码:否

操作系统平台和发行版:Windows 10 64bit

TensorFlow 安装自:最新主源

TensorFlow 版本:提交 dfcec82

Python版本:3.6.5

CMake 版本:3.12.0-rc2

MS C++ 编译器版本:19.00.24234.1

CPU 型号和内存:i5-4460 with 16GB RAM

重现的确切命令:

  1. 以管理员身份打开开发者命令行

  2. 选择 64 位编译器

"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\Tools\vsdevcmd\ext\vcvars.bat" amd64

  1. cd D:\opencv\tensorflow\tensorflow\contrib\cmake\build

4.

cmake .. -A x64 -T host=x64 -DCMAKE_BUILD_TYPE=Release -DSWIG_EXECUTABLE=D:/opencv/swigwin-3.0.12/swig.exe -DPYTHON_EXECUTABLE="C:/Users/FiFo/AppData/Local/Programs/Python/Python36/python.exe" -DPYTHON_LIBRARIES="C:/Users/FiFo/AppData/Local/Programs/Python/Python36/libs/python36.lib" -Dtensorflow_WIN_CPU_SIMD_OPTIONS=/arch:AVX2 -Dtensorflow_BUILD_CC_TESTS=OFF -Dtensorflow_BUILD_PYTHON_TESTS=OFF -Dtensorflow_BUILD_MORE_PYTHON_TESTS=OFF -Dtensorflow_BUILD_CC_EXAMPLE=ON -Dtensorflow_BUILD_PYTHON_BINDINGS=ON -Dtensorflow_BUILD_CC_TESTS=OFF -Dtensorflow_OPTIMIZE_FOR_NATIVE_ARCH=ON -Dtensorflow_ENABLE_MKL_SUPPORT=ON -Dtensorflow_ENABLE_MKLDNN_SUPPORT=ON -Dtensorflow_VERBOSE=ON -Dtensorflow_BUILD_SHARED_LIB=ON
  1. MSBuild /p:Configuration=Release ALL_BUILD.vcxproj 成功
  2. MSBuild /p:Configuration=Release INSTALL.vcxproj 成功

  3. MSBuild /p:Configuration=Release tf_python_build_pip_package.vcxproj

失败:

Generating init.py files for Python API.

Traceback (most recent call last):

File "D:\opencv\tensorflow\tensorflow\contrib\cmake\build\tf_python\tensorflow\python\pywrap_tensorflow_internal.py", line 14, in swig_import_helper
return importlib.import_module(mname)

File "C:\Users\FiFo\AppData\Local\Programs\Python\Python36\lib\importlib_init_.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)

File "", line 994, in _gcd_import
File "", line 971, in _find_and_load
File "", line 955, in _find_and_load_unlocked
File "", line 658, in _load_unlocked
File "", line 571, in module_from_spec
File "", line 922, in create_module
File "", line 219, in _call_with_frames_removed
ImportError: DLL load failed: NÒo foi possÝvel encontrar o m¾dulo especificado.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

File "D:\opencv\tensorflow\tensorflow\contrib\cmake\build\tf_python\tensorflow\python\pywrap_tensorflow.py", line 58, in 
from tensorflow.python.pywrap_tensorflow_internal import *

File "D:\opencv\tensorflow\tensorflow\contrib\cmake\build\tf_python\tensorflow\python\pywrap_tensorflow_internal.py", line 17, in 
_pywrap_tensorflow_internal = swig_import_helper()

File "D:\opencv\tensorflow\tensorflow\contrib\cmake\build\tf_python\tensorflow\python\pywrap_tensorflow_internal.py", line 16, in swig_import_helper
return importlib.import_module('pywrap_tensorflow_internal')

File "C:\Users\FiFo\AppData\Local\Programs\Python\Python36\lib\importlib_init.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)

ModuleNotFoundError: No module named '_pywrap_tensorflow_internal'

Failed to load the native TensorFlow runtime.

它曾经在 1.8 版之前工作过

我不想安装 PIP 版本

编译在 Ubuntu 16.04 上没有任何问题

标签: pythonc++tensorflowcmake

解决方案


CMake 不再受到官方支持。Bazel 是唯一适用于所有配置的选项。


推荐阅读