【问题标题】:Error Installing Dynet w/ Python on Windows在 Windows 上使用 Python 安装 Dynet 时出错
【发布时间】:2017-12-05 19:15:41
【问题描述】:

我正在学习这里的教程:http://dynet.readthedocs.io/en/latest/python.html#windows-python-install 用于安装带有 GPU 和 Python 的 Dynet。

我可以进入运行 cmake 的步骤,一切似乎都很好。问题似乎在于构建 Python 项目。

我跑:

cmake .. -DEIGEN3_INCLUDE_DIR=$PWD/../../eigen -DPYTHON=`which python` -DBACKEND=cuda -DCUDA_TOOLKIT_ROOT_DIR="C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v9.0" -G"Visual Studio 14 2015 Win64"

产生

$ cmake .. -DEIGEN3_INCLUDE_DIR=$PWD/../../eigen -DPYTHON=`which python` -DBACKEND=cuda -DCUDA_TOOLKIT_ROOT_DIR="C:/P
rogram Files/NVIDIA GPU Computing Toolkit/CUDA/v9.0" -G"Visual Studio 14 2015 Win64"
-- Selecting Windows SDK version  to target Windows 10.0.16299.
-- The C compiler identification is MSVC 19.0.24210.0
-- The CXX compiler identification is MSVC 19.0.24210.0
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe -- works

-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- BACKEND: cuda
-- Found CUDA: C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v9.0 (found version "9.0")
CUDA_LIBRARIES: C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v9.0/lib/x64/cudart_static.lib
-- Failed to find CUDNN in path:  (Did you set CUDNN_ROOT properly?)
-- CUDNN not found, some dependent functionalities will be disabled
-- Eigen dir is C:/Users/pie_a/Documents/coding/nlp/adc2181_h4/dynet-base/eigen
-- Looking for pthread.h
-- Looking for pthread.h - not found
-- Found Threads: TRUE
-- Found Cython version 0.27.3

--- CUDA: CUBLAS: C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v9.0/lib/x64/cublas.lib;C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v9.0/lib/x64/cublas_device.lib RT: C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v9.0/lib/x64/cudart_static.lib
CMAKE_INSTALL_PREFIX="C:/Program Files/dynet"
PROJECT_SOURCE_DIR="C:/Users/pie_a/Documents/coding/nlp/adc2181_h4/dynet-base/dynet"
PROJECT_BINARY_DIR="C:/Users/pie_a/Documents/coding/nlp/adc2181_h4/dynet-base/dynet/build"
LIBS="C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v9.0/lib/x64/cudart_static.lib"
EIGEN3_INCLUDE_DIR="C:/Users/pie_a/Documents/coding/nlp/adc2181_h4/dynet-base/eigen"
MKL_LINK_DIRS=""
WITH_CUDA_BACKEND="1"
CUDA_RT_FILES="cudart_static.lib"
CUDA_RT_DIRS="C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v9.0/lib/x64"
CUDA_CUBLAS_FILES="cublas.lib\;cublas_device.lib"
CUDA_CUBLAS_DIRS="C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v9.0/lib/x64"
MSVC="1"
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Users/pie_a/Documents/coding/nlp/adc2181_h4/dynet-base/dynet/build

一切似乎都很好。但是,当我尝试在 Visual Studio 上构建时,我在 pydynet 项目中遇到了 37 个错误,包括:

Severity    Code    Description Project File    Line    Suppression State
Error       command 'C:\\Users\\pie_a\\AppData\\Local\\Programs\\Common\\Microsoft\\Visual C++ for Python\\9.0\\VC\\Bin\\amd64\\cl.exe' failed with exit status 2   pydynet C:\Users\pie_a\Documents\coding\nlp\adc2181_h4\dynet-base\dynet\build\python\CUSTOMBUILD    1

我认为此时它还没有工作,并且继续下一步失败,因为运行以下命令会出错:

$ python setup.py build --skip-build install
running build
INFO:root:CMAKE_PATH='C:\\Users\\pie_a\\Anaconda3\\envs\\nlphw\\Scripts\\cmake.exe'
INFO:root:MAKE_PATH='C:\\MinGW\\msys\\1.0\\bin\\make.exe'
INFO:root:MAKE_FLAGS='-j 8'
INFO:root:EIGEN3_INCLUDE_DIR='C:\\Users\\pie_a\\Documents\\coding\\nlp\\adc2181_h4\\dynet-base\\dynet\\build\\py2.7-64bit\\eigen'
INFO:root:EIGEN3_DOWNLOAD_URL='https://bitbucket.org/eigen/eigen/get/699b6595fc47.zip'
INFO:root:CC_PATH='C:\\MinGW\\bin\\gcc.exe'
INFO:root:CXX_PATH='C:\\MinGW\\bin\\g++.exe'
INFO:root:SCRIPT_DIR='C:\\Users\\pie_a\\Documents\\coding\\nlp\\adc2181_h4\\dynet-base\\dynet'
INFO:root:BUILD_DIR='C:\\Users\\pie_a\\Documents\\coding\\nlp\\adc2181_h4\\dynet-base\\dynet\\build\\py2.7-64bit'
INFO:root:INSTALL_PREFIX='C:\\Users\\pie_a\\Anaconda3\\envs\\nlphw\\Lib\\site-packages\\..\\..\\..'
INFO:root:PYTHON='C:\\Users\\pie_a\\Anaconda3\\envs\\nlphw\\python.exe'
cmake version 3.10.0

CMake suite maintained and supported by Kitware (kitware.com/cmake).
g++.exe (GCC) 4.8.1
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

running build_py
INFO:root:Building Python files...
file dynet_viz.py (for module dynet_viz) not found
file dynet_config.py (for module dynet_config) not found
creating build
creating build\lib.win-amd64-2.7
copying dynet.py -> build\lib.win-amd64-2.7
file dynet_viz.py (for module dynet_viz) not found
file dynet_config.py (for module dynet_config) not found
running build_ext
INFO:root:Building Cython extensions...
INFO:root:INCLUDE_DIRS='C:\\Users\\pie_a\\Documents\\coding\\nlp\\adc2181_h4\\dynet-base\\dynet C:\\Users\\pie_a\\Documents\\coding\\nlp\\adc2181_h4\\dynet-base\\dynet\\build\\py2.7-64bit\\eigen'
INFO:root:LIBRARIES='dynet'
INFO:root:LIBRARY_DIRS='C:\\Users\\pie_a\\Documents\\coding\\nlp\\adc2181_h4\\dynet-base\\dynet/dynet/ . C:\\Users\\pie_a\\Documents\\coding\\nlp\\adc2181_h4\\dynet-base\\dynet\\build\\py2.7-64bit/dynet/'
INFO:root:COMPILER_ARGS='-std=c++11 -Wno-unused-function'
INFO:root:EXTRA_LINK_ARGS="-Wl,-rpath='C:\\\\Users\\\\pie_a\\\\Anaconda3\\\\envs\\\\nlphw\\\\Lib\\\\site-packages\\\\..\\\\..\\\\../lib/',--no-as-needed"
INFO:root:RUNTIME_LIB_DIRS='C:\\Users\\pie_a\\Documents\\coding\\nlp\\adc2181_h4\\dynet-base\\dynet/dynet/ C:\\Users\\pie_a\\Anaconda3\\envs\\nlphw\\Lib\\site-packages\\..\\..\\../lib/'
skipping 'C:\Users\pie_a\Documents\coding\nlp\adc2181_h4\dynet-base\dynet/python\_dynet.cpp' Cython extension (up-to-date)
building '_dynet' extension
creating build\temp.win-amd64-2.7
creating build\temp.win-amd64-2.7\Release
creating build\temp.win-amd64-2.7\Release\Users
creating build\temp.win-amd64-2.7\Release\Users\pie_a
creating build\temp.win-amd64-2.7\Release\Users\pie_a\Documents
creating build\temp.win-amd64-2.7\Release\Users\pie_a\Documents\coding
creating build\temp.win-amd64-2.7\Release\Users\pie_a\Documents\coding\nlp
creating build\temp.win-amd64-2.7\Release\Users\pie_a\Documents\coding\nlp\adc2181_h4
creating build\temp.win-amd64-2.7\Release\Users\pie_a\Documents\coding\nlp\adc2181_h4\dynet-base
creating build\temp.win-amd64-2.7\Release\Users\pie_a\Documents\coding\nlp\adc2181_h4\dynet-base\dynet
creating build\temp.win-amd64-2.7\Release\Users\pie_a\Documents\coding\nlp\adc2181_h4\dynet-base\dynet\python
C:\Users\pie_a\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -IC:\Users\pie_a\Documents\coding\nlp\adc2181_h4\dynet-base\dynet -IC:\Users\pie_a\Documents\coding\nlp\adc2181_h4\dynet-base\dynet\build\py2.7-64bit\eigen -IC:\Users\pie_a\Anaconda3\envs\nlphw\include -IC:\Users\pie_a\Anaconda3\envs\nlphw\PC /TpC:\Users\pie_a\Documents\coding\nlp\adc2181_h4\dynet-base\dynet/python\_dynet.cpp /Fobuild\temp.win-amd64-2.7\Release\Users\pie_a\Documents\coding\nlp\adc2181_h4\dynet-base\dynet/python\_dynet.obj -std=c++11 -Wno-unused-function
cl : Command line error D8021 : invalid numeric argument '/Wno-unused-function'
error: command 'C:\\Users\\pie_a\\AppData\\Local\\Programs\\Common\\Microsoft\\Visual C++ for Python\\9.0\\VC\\Bin\\amd64\\cl.exe' failed with exit status 2

我很乐意提供更多信息!问题的几个可能来源:我用 pip 安装了 Boost。我看到一条注释说 c++ 编译器需要与您安装 Boost 的编译器的版本相同,但是 Visual Studio 上的一条消息让我在第一次构建时安装了不同的 c++ 驱动程序。

另外,这个变量的值是 Windowese 而不是 Unix 格式,这是个问题吗?我将其设置为系统环境变量。

$ echo $VS90COMNTOOLS
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\

【问题讨论】:

    标签: python windows bash boost deep-learning


    【解决方案1】:

    尝试将环境变量MSVC 设置为1 并重新构建。此变量告诉设置代码使用适用于 Windows 的设置。

    【讨论】:

    • 最后,我放弃了,转而使用 Ubuntu 虚拟机。但感谢您的回复。如果有一天我觉得值得付出努力,我会试一试。
    猜你喜欢
    • 1970-01-01
    • 2018-02-18
    • 1970-01-01
    • 2016-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-15
    • 2021-12-18
    相关资源
    最近更新 更多