在installing OpenSSL之后,下载pre-built Swig executable,并确保openssl libraries are located in the default 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
binary installer solution for M2crypto似乎已不再可用,而且我没有看到我根据M2crypto install doc所犯的任何错误。
我如何解决此安装问题?是否依赖旧版本的GCC?
答案 0 :(得分:6)
我很幸运 - 有一个非官方的二进制安装程序代替chandlerproject.org/bin/view/Projects/MeTooCrypto关闭:
答案 1 :(得分:1)
https://gitlab.com/m2crypto/m2crypto项目提供Windows版本的M2Crypto。
我从https://ci.appveyor.com/project/dwoz/m2crypto→https://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修改了构建步骤。我通过执行以下操作构建了模块:
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 Light
/ OpenSSL
安装最新的完整版本(而非Win64
)Win32
。撰写本文时,当前版本为1.1.1d
。记下要安装OpenSSL
的目录。 https://slproweb.com/products/Win32OpenSSL.html PowerShell
中,安装Chocolatey
软件包管理器。我从他们的网站Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
swig
与Chocolatey
(在PowerShell
中)一起安装。 choco install -r -y swig
pywin32
依赖项。运行pip install pywin32
。如果遇到问题,请尝试首先运行pip install wheel
。要使pip
定位到特定的Python安装,请尝试使用py -[version] -m pip install [module]
启动它。注意:您可能需要使用提升权限的(管理员)PowerShell
来安装Python模块。m2crypto
代码。如果您安装了git
,请运行git clone https://gitlab.com/m2crypto/m2crypto
。否则,从GitLab下载并提取代码:https://gitlab.com/m2crypto/m2crypto/-/archive/master/m2crypto-master.zip cd
进入已克隆/提取到的目录m2crypto
。python
启动所需的Python解释器版本,运行python setup.py build --openssl="C:\Program Files\OpenSSL-Win64" --bundledlls
,并将C:\Program Files\OpenSSL-Win64
替换为您安装OpenSSL
的目录。 (在某些系统上,您可以使用py
启动器来指定要使用的Python版本,请运行py -h
以获取更多信息。)python.exe setup.py bdist_wheel bdist_wininst bdist_msi
。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。