Как установить M2crypto на Windows

После установки OpenSSL загрузите предварительно собранный исполняемый файл Swig и убедитесь, что библиотеки openssl расположены по умолчанию c:\pkg, pip install m2crypto результаты в:

...
C:\Program Files (x86)\gfortran\bin\gcc.exe -mno-cygwin -mdll -O -Wall -IC:\Pyth
on27\include -IC:\Python27\PC -Ic:\pkg\include -Ic:\users\evbo\appdata\local\tem
p\pip_build_evbo\m2crypto\SWIG -c SWIG/_m2crypto_wrap.c -o build\temp.win32-2.7\
Release\swig\_m2crypto_wrap.o -DTHREADING

gcc: error: unrecognized command line option '-mno-cygwin'

error: command 'gcc' failed with exit status 1

Похоже, что бинарное установочное решение для M2crypto больше не доступно, и я не вижу ошибок, которые я сделал, основываясь на установочном документе M2crypto.

Как я могу решить эту проблему установки? Есть ли зависимость от старых версий GCC?

6 ответов

Решение

Мне повезло - есть неофициальный установщик двоичных файлов вместо http://chandlerproject.org/bin/view/Projects/MeTooCrypto:

https://github.com/saltstack/salt-windows-install/blob/master/deps/win32-py2.7/M2Crypto-0.21.1.win32-py2.7.msi

Недавно я написал следующее в ответ на проблему GitHub для модуля Python, который требует m2crypto.

Некоторые сборки для m2cryptoдля определенных версий Python доступны в их CI: https://ci.appveyor.com/project/m2crypto/m2crypto/history. Попробуйте выбрать версию, выберите задание, соответствующее вашей версии Python, затем перейдите на вкладку "Артефакты" и загрузите установщик. Чтобы установить.whl см. шаг 11 моего руководства по сборке ниже.

Я также приложил m2cryptoмодуль, который я построил для Windows 10 x64, Python 3.8.1. Он должен работать в любой версии Windows на базе x64 с любой версией Python 3.8.X. M2Crypto-0.35.2.win-amd64-py3.8.zip

Однако, если вы не можете найти сборку, которая соответствует вашей версии Python, а также типу и архитектуре системы, вам может потребоваться вручную собрать m2crypto. Я адаптировал шаги сборки из их сценариев сборки CI: https://gitlab.com/m2crypto/m2crypto/blob/master/appveyor.yml. Я построил модуль, выполнив следующие действия:

  1. Установите последнюю Build Tools for Visual Studio 2019. См. https://visualstudio.microsoft.com/downloads/ разделе "Все загрузки" -> "Инструменты для Visual Studio 2019". Эта прямая ссылка была активна на момент написания этой статьи: https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools&rel=16
  2. В установщике выберите "C++ Build Tools", установите и при необходимости перезагрузитесь.
  3. Установите последнюю полную (не Light) OpenSSL для вашей архитектуры (Win64/Win32). Текущая версия на момент написания этой статьи1.1.1d. Обратите внимание на каталог, в который вы устанавливаетеOpenSSL. https://slproweb.com/products/Win32OpenSSL.html
  4. В PowerShell, установите Chocolateyменеджер пакетов. Я использовал эту команду с их сайта:Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
  5. Установить swig с участием ChocolateyPowerShell). choco install -r -y swig
  6. Установите pywin32зависимость. Бегатьpip install pywin32. Если у вас есть проблемы, попробуйте сначала запуститьpip install wheel. Получитьpip чтобы настроить таргетинг на конкретную установку Python, попробуйте запустить ее с помощью py -[version] -m pip install [module]. Примечание: вам может понадобиться использовать повышенный (администратор)PowerShell для установки модулей Python.
  7. Получите самое последнее m2cryptoкод. Если у вас естьgit установлен, запустить git clone https://gitlab.com/m2crypto/m2crypto. В противном случае загрузите и извлеките код из GitLab: https://gitlab.com/m2crypto/m2crypto/-/archive/master/m2crypto-master.zip
  8. Использовать cd перейти в каталог m2crypto был клонирован / извлечен в.
  9. Предполагая python запускает желаемую версию интерпретатора Python, запустите python setup.py build --openssl="C:\Program Files\OpenSSL-Win64" --bundledlls, заменяя C:\Program Files\OpenSSL-Win64 с каталогом, в который вы установили OpenSSL. (В некоторых системах вы можете использоватьpy средство запуска, чтобы указать версию Python для использования, запустите py -h для дополнительной информации.)
  10. Сгенерируйте устанавливаемые файлы. python.exe setup.py bdist_wheel bdist_wininst bdist_msi.
  11. Установите модуль. cd в dist каталог и запустить pip install M2Crypto-0.35.2-cp38-cp38-win_amd64.whl, заменяя имя файла сгенерированным .whlфайл. Если у вас есть проблемы, попробуйте сначала запуститьpip install wheel. Получитьpip чтобы настроить таргетинг на конкретную установку Python, попробуйте запустить ее с помощью py -[version] -m pip install [module]. В качестве альтернативы вы можете запустить сгенерированный.exe или .msiустановщик. Примечание: вам может понадобиться использовать повышенный (администратор)PowerShell для установки модулей Python.

Проект https://gitlab.com/m2crypto/m2crypto предоставляет сборки Windows для M2Crypto.

Я установил M2Crypto-0.30.1-cp27-cp27m-win_amd64.whl колесо от https://ci.appveyor.com/project/dwoz/m2cryptohttps://ci.appveyor.com/project/dwoz/m2crypto/build/job/y7yri08k45mn5nlj/artifacts и оно работало безупречно.

Вот как это сделать с pip для 64-битного Python 2.7:

pip install https://ci.appveyor.com/api/buildjobs/y7yri08k45mn5nlj/artifacts/dist/M2Crypto-0.30.1-cp27-cp27m-win_amd64.whl

Сейчас конец 2019 года, а установка M2Crypto все еще затруднительна! После тонны поисков в Google, наконец, дошли до следующих шагов:

pip install wheel
pip install M2CryptoWin32

Использование свежей Python 2.7.17 32bit установить на Windows, 10. Вы могли бы нужно установить http://aka.ms/vcpython27 первым.

Я полагаю, что вместо этого следует использовать M2CryptoWin64, если вы установили 64-битный Python.

в Windows (версии Python 3.7 | 3.8 | 3.9 | 3.10) вы можете скачать файл whl отсюда и установить его с помощью этой команды:

      python install M2Crypto-0.38.0-cp310-cp310-win_amd64.whl

заменить текущее имя файла whl .

1~11: /questions/47077440/kak-ustanovit-m2crypto-na-windows/55131933#55131933

12: установить M2Crypto.whl и adb одной командой

pip установить M2Crypto-0.38.0-cp310-cp310-win_amd64.whl adb

Другие вопросы по тегам