报错信息

在 Windows 下的 Conda 环境中pip install一些需要现场编译的库时经常会报错:

Building wheel for pyopenjtalk (pyproject.toml) ... error

ERROR: Command errored out with exit status 1:

command: 'D:\Miniconda3\envs\dl\python.exe' 'D:\Miniconda3\envs\dl\lib\site-packages\pip\_vendor\pep517\in_process\_in_process.py' build_wheel 'C:\Users\Administrator\AppData\Local\Temp\tmpvdg4l0qp'

cwd: C:\Users\Administrator\AppData\Local\Temp\pip-install-jpy19xi8\pyopenjtalk_5c83910e21044265aad3fbfcb35bbc2e

Complete output (21 lines):

fatal: not a git repository (or any of the parent directories): .git

running bdist_wheel

running build

running build_py

-- Building version 0.3.0

creating build\lib.win-amd64-3.7

creating build\lib.win-amd64-3.7\pyopenjtalk

copying pyopenjtalk\utils.py -> build\lib.win-amd64-3.7\pyopenjtalk

copying pyopenjtalk\version.py -> build\lib.win-amd64-3.7\pyopenjtalk

copying pyopenjtalk\__init__.py -> build\lib.win-amd64-3.7\pyopenjtalk

creating build\lib.win-amd64-3.7\pyopenjtalk\htsvoice

copying pyopenjtalk\htsvoice\LICENSE_mei_normal.htsvoice -> build\lib.win-amd64-3.7\pyopenjtalk\htsvoice

copying pyopenjtalk\htsvoice\mei_normal.htsvoice -> build\lib.win-amd64-3.7\pyopenjtalk\htsvoice

copying pyopenjtalk\htsvoice\README.md -> build\lib.win-amd64-3.7\pyopenjtalk\htsvoice

running build_ext

skipping 'pyopenjtalk\openjtalk.cpp' Cython extension (up-to-date)

skipping 'pyopenjtalk\htsengine.cpp' Cython extension (up-to-date)

building 'pyopenjtalk.openjtalk' extension

setup.py:26: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.

_CYTHON_INSTALLED = ver >= LooseVersion(min_cython_ver)

error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/

----------------------------------------

ERROR: Failed building wheel for pyopenjtalk

Failed to build pyopenjtalk

ERROR: Could not build wheels for pyopenjtalk, which is required to install pyproject.toml-based projects

上图为安装pyopenjtalk时的报错信息。

规避方法

我之前遇到这种问题的解决方法是直接下载已经在Windows上编译好的whl文件,然后:

pip install xxx.whl

然而该网站并没有编译好的pyopenjtalk包,因此这次必须解决该错误。

问题原因

根据微软官方问答平台中的说法,应该是Conda环境下pip的构建工具选择错误。

解决方法

在pip install之前执行:

SET DISTUTILS_USE_SDK=1 & "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" x64

注意vcvarsall.bat的路径因人而异。

至于为什么要这么做,可以参考下sklearn的高级安装文档。

相关文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: