如何在Windows上安装M2crypto

时间:2014-08-04 01:46:49

标签: python windows openssl swig m2crypto

installing OpenSSL之后,下载pre-built Swig executable,并确保openssl libraries are located in the default c:\pkgpip 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

binary installer solution for M2crypto似乎已不再可用,而且我没有看到我根据M2crypto install doc所犯的任何错误。

我如何解决此安装问题?是否依赖旧版本的GCC?

4 个答案:

答案 0 :(得分:6)

答案 1 :(得分:1)

https://gitlab.com/m2crypto/m2crypto项目提供Windows版本的M2Crypto。

我从https://ci.appveyor.com/project/dwoz/m2cryptohttps://ci.appveyor.com/project/dwoz/m2crypto/build/job/y7yri08k45mn5nlj/artifacts安装了M2Crypto-0.30.1-cp27-cp27m-win_amd64.whl滚轮,它工作正常。

以下是针对64位Python 2.7使用pip的方法:

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

答案 2 :(得分:1)

我最近针对GitHub问题(需要m2crypto的Python模块)写了以下内容。

可从https://ci.appveyor.com/project/m2crypto/m2crypto/history的CI中获取m2crypto的一些特定版本的Python版本。尝试选择一个版本,选择与您的Python版本匹配的作业,然后转到“工件”选项卡并下载安装程序。要安装.whl文件,请参阅下面的构建教程的步骤11。

我还附加了在Windows 10 x64,Python 3.8.1上构建的m2crypto模块。它应可在任何基于x64的Windows版本和任何版本的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。请参阅“所有下载”->“ Visual Studio 2019工具”下的https://visualstudio.microsoft.com/downloads/。撰写本文时,此直接链接有效:https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools&rel=16
  2. 在安装程序中,选择“ C ++ Build Tools”,安装并在必要时重新启动。
  3. 为您的体系结构(Light / OpenSSL安装最新的完整版本(而非Win64Win32。撰写本文时,当前版本为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. 使用了此命令
  6. swigChocolatey(在PowerShell中)一起安装。 choco install -r -y swig
  7. 安装pywin32依赖项。运行pip install pywin32。如果遇到问题,请尝试首先运行pip install wheel。要使pip定位到特定的Python安装,请尝试使用py -[version] -m pip install [module]启动它。注意:您可能需要使用提升权限的(管理员)PowerShell来安装Python模块。
  8. 获取最新的m2crypto代码。如果您安装了git,请运行git clone https://gitlab.com/m2crypto/m2crypto。否则,从GitLab下载并提取代码:https://gitlab.com/m2crypto/m2crypto/-/archive/master/m2crypto-master.zip
  9. 使用cd进入已克隆/提取到的目录m2crypto
  10. 假设python启动所需的Python解释器版本,运行python setup.py build --openssl="C:\Program Files\OpenSSL-Win64" --bundledlls,并将C:\Program Files\OpenSSL-Win64替换为您安装OpenSSL的目录。 (在某些系统上,您可以使用py启动器来指定要使用的Python版本,请运行py -h以获取更多信息。)
  11. 生成可安装文件。 python.exe setup.py bdist_wheel bdist_wininst bdist_msi
  12. 安装模块。 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模块。

答案 3 :(得分:0)

到2019年末,安装M2Crypto仍然很痛苦!经过一番谷歌搜索,终于将其归结为以下步骤:

pip install wheel
pip install M2CryptoWin32

在Windows 10上使用全新的Python 2.7.17 32位安装。可能首先需要安装http://aka.ms/vcpython27

我想如果您已经安装了64位Python,则应该改用M2CryptoWin64。