Установка pyCLD3 в Windows 10

Я пытаюсь установить pyCLD3 в Windows 10 (python 3.8.5):

pip install pycld3 в Windows не работает (как и ожидалось, это упоминается в файле README на их Github).

Однако инструкции по его установке из исходного кода неясны, в нем только говорится, что мне нужны некоторые предварительные условия, и выдается неясный ссылка на то, как установить один из них (Protobuf), но не на другие, и не на то, как приступить к установке самого pyClD3.

введите здесь описание изображения

Мне удалось установить Protoc с помощью Chocolatey, проконсультировавшись с этот пост, однако я не уверен если это то, как я должен был это сделать и как действовать дальше, то есть что такое заголовки разработки Protobuf и где найти библиотеку libprotoc - это то же самое, что и Protobuf/ протокол? Что касается g++, я установил MinGW из здесь, но также запутался, что с ним делать следующий.

Вот фрагмент того, что я получаю, когда пытаюсь установить pyCLD3 с помощью pip:

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

person Grintas    schedule 03.12.2020    source источник
comment
Здравствуйте, сопровождающий pycld3 здесь. Похоже, это проблема с установкой protobuf. Удалось ли вам ее решить?   -  person Brad Solomon    schedule 12.03.2021


Ответы (1)


Вы можете попробовать Msys2. Мне удалось скомпилировать pycld3 в Windows 10 с помощью Python3.7.

В Windows 10 cmd

  • загрузите pycld3-0.20.tar.gz с https://pypi.org/project/pycld3/#files, разархивируйте это и 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)
  • установить протокол (pacman -S mingw-w64-x86_64-protobuf, протокол, установленный choco, не работал в моем эксперименте, но этот протокол работает)
  • установить ПУТЬ (export PATH=$PATH:/mingw64/bin/)
  • вставьте строку #include <math.h> перед строкой 6 из Python.h (например, 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 -- возникла ошибка ValueError: ZIP does not support timestamps before 1980 при попытке venv/Scripts/python setup.py install.

Пожалуйста, примите мой ответ, если он решит вашу проблему 'google/protobuf/port_def.inc': No such file or directory :).

person mikey    schedule 06.01.2021