M2Crypto installation

2019-09-06 07:10发布

I am struggling to get my M2Crypto installation to work

C:\Python27>python
Python 2.7.9 (default, Dec 10 2014, 12:24:55) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from M2Crypto import RSA
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python27\lib\M2Crypto\__init__.py", line 22, in <module>
    import __m2crypto
ImportError: No module named __m2crypto
>>>

Not really surprising as there is no __m2crypto module anywhere, but where should it be and where should I get it from?

I have installed M2Crypto from https://pypi.python.org/pypi/M2Crypto by downloading M2Crypto-master and copying the unziped M2Crypto folder to c:\Python27\lib

From M2Crypto I only need the RSA functionality so suggestions involving alternatives to M2Crypto would also be helpful.

Any help highly appreciated

标签: m2crypto
1条回答
▲ chillily
2楼-- · 2019-09-06 08:01

There pretty good instruction on building M2Crypto, I've using myself, here: http://www.gooli.org/blog/building-m2crypto-on-windows/

Building M2Crypto for Windows

M2Crypto uses a tool called SWIG to help write the Python code that wraps the OpenSSL library that is written in C, so we’ll have to download and install it.

Let’s go.

  1. Download the latest SWIG Windows binaries from http://www.swig.org/download.html .
  2. Unzip and untar the SWIG package to some directory and add that directory to your PATH.
  3. Download the latest M2Crypto sources from http://chandlerproject.org/bin/view/Projects/MeTooCrypto.
  4. Unzip and untar the M2Crypto source somewhere and open a command prompt there.
  5. > python setup.py build_ext –openssl c:/openssl
  6. > python setup.py bdist_wininst

That last command will create a nice M2Crypto-0.18.win32-py2.4.exe file in the dist subdirectory which you can run to install M2Crypto in the Python site-packages directory.

To test your build, run python and do import M2Crypto. If you get an error that says ‘ImportError: DLL load failed with error code 182′, it’s because the M2Crypto library can’t find the OpenSSL DLLs. You’ll need to place the libeay32.dll and ssleay32.dll files somewhere python can find them. The directory in which your script resides is a good bet.

If you still have problems with building, I'd recently compiled M2Crypto for my needs on Windows 7 x64 - Python 2.7 You can download binary here (M2Crypto-0.22.3.win32-py2.7.exe): https://drive.google.com/file/d/0ByAiJQIq8icYOUNiZEJQQzVhdVU/view?usp=sharing

Good Luck

查看更多
登录 后发表回答