【问题标题】:Installing pyCLD3 on Windows 10在 Windows 10 上安装 pyCLD3
【发布时间】:2021-03-15 19:20:27
【问题描述】:

我正在尝试在 Windows 10 (python 3.8.5) 上安装 pyCLD3

Windows 上的pip install pycld3 不起作用(正如预期的那样,在他们的Github 上的自述文件中提到了它)。

但是,如何从 Source 安装它的说明尚不清楚,它只说明我需要一些先决条件,并给出了一个不清楚的 reference 关于如何安装其中一个(Protobuf),而不是其他的,而不是如何继续安装 pyClD3 本身。

我设法使用 Chocolatey 咨询 this post 安装了 Protoc,但是,我不确定我是否应该这样做以及下一步如何进行,即 Protobuf 开发头文件是什么以及在哪里可以找到 libprotoc 库 - 它与 Protobuf/protoc 是一样的吗? 至于g++,我已经从here 安装了MinGW,但也很困惑下一步该怎么做。

这是我尝试使用 pip 安装 pyCLD3 时得到的结果:

Building wheels for collected packages: pycld3
  Building wheel for pycld3 (setup.py) ... error
  ERROR: Command errored out with exit status 1:
<...>
Kits\10\include\10.0.18362.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\cppwinrt" /EHsc /Tpcld3/pycld3.cpp /Fobuild\temp.win-amd64-3.8\Release\cld3/pycld3.obj -std=c++11
  cl : Command line warning D9002 : ignoring unknown option '-std=c++11'
  pycld3.cpp
  C:\Users\me\AppData\Local\Temp\pip-install-1lgq4b5o\pycld3_11fb5b01d9d44711b4031f733ec7f6cc\src\cld_3/protos/feature_extractor.pb.h(10): fatal error C1083: Cannot open include file: 'google/protobuf/port_def.inc': No such file or directory
  error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\VC\\Tools\\MSVC\\14.25.28610\\bin\\HostX86\\x64\\cl.exe' failed with exit status 2
  ----------------------------------------
  ERROR: Failed building wheel for pycld3

【问题讨论】:

标签: python windows protoc


【解决方案1】:

你可以试试 Msys2。我设法在 Windows 10 中使用 Python3.7 编译了 pycld3。

在 Windows 10 的 cmd 中

  • https://pypi.org/project/pycld3/#files下载pycld3-0.20.tar.gz,解压它和cd到那个目录
  • 创建一个 Py3.7 虚拟环境 (py -3.7 -m venv venv)。 (我不知道其他 Python 版本是否有效。)

Msys2

  • 安装msys2 https://www.msys2.org/
  • 启动 msys2 (c:\msys64\msys2.exe)
  • 更新 msys2:根据需要做几个 pacman -Syuu
  • 安装工具链 (pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-gdb mingw-w64-x86_64-make)
  • 安装 protoc(pacman -S mingw-w64-x86_64-protobuf,choco 安装的 protoc 在我的实验中不起作用,但这个 protoc 有效)
  • 设置路径 (export PATH=$PATH:/mingw64/bin/)
  • Python.h 的第 6 行之前插入 #include &lt;math.h&gt; 行(例如,在我的情况下为 C:\Python\Python37\include\Python.h)。这修复了 _hypot 相关的错误。
  • 编译安装(进入上述目录,如cd /c/Users/xyz/Downloads/pycld3-0.20/pycld3-0.20,执行./venv/Scripts/python.exe setup.py build

我设法成功build pycld3,但无法isntall -- 当我尝试venv/Scripts/python setup.py install 时出现ValueError: ZIP does not support timestamps before 1980 错误。

如果它解决了您的'google/protobuf/port_def.inc': No such file or directory 问题,请接受我的回答:)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-14
    • 2018-03-22
    • 2018-06-19
    • 2020-05-18
    • 2018-07-18
    • 2020-06-23
    • 2021-12-10
    • 2018-05-03
    相关资源
    最近更新 更多