c++ - Anaconda Python2.7 在Windows 7 上编译包报错

标签 c++ python-2.7

尝试安装,pip install spacy 还做了conda安装mingw

D:\Programms\Anaconda2\Scripts>gcc -v Using built-in specs. COLLECT_GCC=D:\Programms\Anaconda2\Scripts\gcc.bat....\MinGW\bin\gcc.exe COLLECT_LTO_WRAPPER=d:/programms/anaconda2/mingw/bin/../libexec/gcc/x86_64-w64-mingw32/4.7.0/lto-wrapper.exe Target: x86_64-w64-mingw32 Configured with: ../../../build/gcc/src/configure --target=x86_64-w64-mingw32 --prefix=/c/bb/vista64-mingw32/mingw-x86-x86_64/build/build/ro ot --with-sysroot=/c/bb/vista64-mingw32/mingw-x86-x86_64/build/build/root --enable-languages=all,obj-c++ --enable-fully-dynamic-string --dis able-multilib Thread model: win32 gcc version 4.7.0 20111220 (experimental) (GCC)

遇到错误。 Lock like MinGW和Visual C++混合

d:\Programms\Anaconda2\Scripts\gcc.bat -DMS_WIN64 -mdll -O -Wall -Id:\programms\anaconda2\include -Ic:\users\runa\appdata\local\temp\pip-b uild-pgrnrn\spacy\include -Ic:\users\runa\appdata\local\temp\pip-build-pgrnrn\spacy\include\msvc9 -Id:\programms\anaconda2\include -Id:\prog ramms\anaconda2\PC -c spacy/parts_of_speech.cpp -o build\temp.win-amd64-2.7\Release\spacy\parts_of_speech.o -O3 -Wno-strict-prototypes -Wno- unused-function cc1plus.exe: warning: command line option '-Wno-strict-prototypes' is valid for C/ObjC but not for C++ [enabled by default] spacy/parts_of_speech.cpp: In function 'void __Pyx_RaiseTooManyValuesError(Py_ssize_t)': spacy/parts_of_speech.cpp:1947:94: warning: unknown conversion type character 'z' in format [-Wformat] spacy/parts_of_speech.cpp:1947:94: warning: too many arguments for format [-Wformat-extra-args] spacy/parts_of_speech.cpp: In function 'void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t)': spacy/parts_of_speech.cpp:1953:48: warning: unknown conversion type character 'z' in format [-Wformat] spacy/parts_of_speech.cpp:1953:48: warning: format '%s' expects argument of type 'char*', but argument 3 has type 'Py_ssize_t {aka long lo ng int}' [-Wformat] spacy/parts_of_speech.cpp:1953:48: warning: too many arguments for format [-Wformat-extra-args] writing build\temp.win-amd64-2.7\Release\spacy\parts_of_speech.def d:\Programms\Anaconda2\Scripts\g++.bat -DMS_WIN64 -shared -s build\temp.win-amd64-2.7\Release\spacy\parts_of_speech.o build\temp.win-amd64 -2.7\Release\spacy\parts_of_speech.def -Ld:\programms\anaconda2\libs -Ld:\programms\anaconda2\PCbuild\amd64 -Ld:\programms\anaconda2\PC\VS9. 0\amd64 -lpython27 -lmsvcr90 -o build\lib.win-amd64-2.7\spacy\parts_of_speech.pyd building 'spacy.strings' extension d:\Programms\Anaconda2\Scripts\gcc.bat -DMS_WIN64 -mdll -O -Wall -Id:\programms\anaconda2\include -Ic:\users\runa\appdata\local\temp\pip-b uild-pgrnrn\spacy\include -Ic:\users\runa\appdata\local\temp\pip-build-pgrnrn\spacy\include\msvc9 -Id:\programms\anaconda2\include -Id:\prog ramms\anaconda2\PC -c spacy/strings.cpp -o build\temp.win-amd64-2.7\Release\spacy\strings.o -O3 -Wno-strict-prototypes -Wno-unused-function cc1plus.exe: warning: command line option '-Wno-strict-prototypes' is valid for C/ObjC but not for C++ [enabled by default] In file included from spacy/strings.cpp:248:0: c:\users\runa\appdata\local\temp\pip-build-pgrnrn\spacy\include\msvc9/stdint.h:34:2: error: #error "Use this header only with Microsoft Visual C++ compilers!" In file included from c:\users\runa\appdata\local\temp\pip-build-pgrnrn\spacy\include/murmurhash/MurmurHash3.h:8:0, cc1plus.exe: warning: command line option '-Wno-strict-prototypes' is valid for C/ObjC but not for C++ [enabled by default] In file included from thinc/linalg.cpp:248:0: c:\users\runa\appdata\local\temp\pip-build-pgrnrn\thinc\include\msvc9/stdint.h:34:2: error: #error "Use this header only with Microsoft Vi sual C++ compilers!" error: command 'd:\Programms\Anaconda2\Scripts\gcc.bat' failed with exit status Failed building wheel for thinc Running setup.py clean for thinc Failed to build spacy thinc Installing collected packages: thinc, pathlib, semver, sputnik, ujson, spacy

我跳过的所有输出列表

Running setup.py install for thinc ... error Complete output from command d:\programms\anaconda2\python.exe -u -c "import setuptools, tokenize;file='c:\users\runa\appdata\lo cal\temp\pip-build-pgrnrn\thinc\setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec (compile(code, file, 'exec'))" install --record c:\users\runa\appdata\local\temp\pip-hhhilf-record\install-record.txt --single-version-e xternally-managed --compile: running install running build running build_py running build_ext building 'thinc.linalg' extension d:\Programms\Anaconda2\Scripts\gcc.bat -DMS_WIN64 -mdll -O -Wall -Id:\programms\anaconda2\include -Ic:\users\runa\appdata\local\temp\pip -build-pgrnrn\thinc\include -Ic:\users\runa\appdata\local\temp\pip-build-pgrnrn\thinc\include\msvc9 -Id:\programms\anaconda2\include -Id:\pr ogramms\anaconda2\PC -c thinc/linalg.cpp -o build\temp.win-amd64-2.7\Release\thinc\linalg.o -O3 -Wno-strict-prototypes -Wno-unused-function -msse3

gcc.exe: error: thinc/linalg.cpp: No such file or directory gcc.exe: fatal error: no input files compilation terminated. error: command 'd:\Programms\Anaconda2\Scripts\gcc.bat' failed with exit status 1 Command "d:\programms\anaconda2\python.exe -u -c "import setuptools, tokenize;file='c:\users\runa\appdata\local\temp\pip-build-pgr nrn\thinc\setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record c:\users\runa\appdata\local\temp\pip-hhhilf-record\install-record.txt --single-version-externally-managed --comp ile" failed with error code 1 in c:\users\runa\appdata\local\temp\pip-build-pgrnrn\thinc\

最佳答案

问题出在这里:

#error "Use this header only with Microsoft Visual C++ compilers!" In file included from c:\users\runa\appdata\local\temp\pip-build-...

Spacy 希望在 Windows 上使用 VC++ 进行编译,但错误地包含了一个自定义版本的 stdint.h,旨在解决 VC++ 的问题。

特别是在 setup.py ( https://github.com/explosion/spaCy/blob/3431e7b86feabdba014c2200692677872cd8f595/setup.py ) 中,它调用 new_compiler().compiler_type == 'msvc' 来检查 Windows 上的编译器类型。然而,根据 python 文档 ( https://docs.python.org/3/distutils/apiref.html ),这将始终在 Windows 上返回“msvc”。

可能最简单的解决方案是安装 Visual Studio Express 并使用 VC++ 在 Windows 上进行编译。您也可以考虑报告错误。

关于c++ - Anaconda Python2.7 在Windows 7 上编译包报错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42181897/

相关文章:

python - 从数据库加载大数据并转换为 JSON 时如何提高性能

python - 从子类 Python 导入

c++ - 将指向前向声明类型的指针插入 typedef vector 时出现编译器错误

c# - 审批工作流的同义词

c++ - 在函数中使用 cin/cout 流

c++ - 接受类型或模板作为参数的模板

c++ - 使用 OpenCV 的对象跟踪脚本中的慢速视频

python - 为什么 pip 安装的包的 __init__.py 没有规范 if __name__ == "__main__":?

Python子进程不返回

python - Pandas 使用日期作为索引加入/合并 2 个数据帧