<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
Hello Christoph<div><br></div><div>I have made more head way since that one (and made a lot more changes).</div><div>I found that the module creation required a few more steps and I have come up&nbsp;</div><div>with two solutions (in attached patches):</div><div><br></div><div>1. First patch follows most of the online info I could find related to&nbsp;PyModuleDef and the related&nbsp;PyTypeObject.</div><div>&nbsp;&nbsp; This required that all tp_getattr functions be removed and set to 0 (zero) in the&nbsp;PyTypeObject definition.</div><div><br></div><div>2. The second patch retained the already created tp_getattr functions.</div><div><br></div><div>With either applied I am able to compile but when running a test program with the following lines only:</div><div><br></div><div>#!/usr/bin/env python</div><div><br></div><div>from Crypto.Cipher import AES</div><div>import base64</div><div>import os</div><div><br></div><div><br></div><div>When run I receive the following error:</div><div><br></div><div>Traceback (most recent call last):</div><div>&nbsp;&nbsp;File "./cypher.py", line 3, in &lt;module&gt;</div><div>&nbsp;&nbsp; &nbsp;from Crypto.Cipher import AES</div><div>SystemError: NULL result without error in PyObject_Call</div><div><br></div><div>So apply patches (and make necessary changes for Windows) and we will see if I can help further :)</div><div><br></div><div>Cheers Grail<br><br>&gt; Date: Sun, 28 Feb 2010 22:04:12 +0100<br>&gt; From: christoph.tapler@gmx.net<br>&gt; To: pycrypto@lists.dlitz.net<br>&gt; Subject: Re: [pycrypto] FW: python crypto with python 3.0 or 3.1<br>&gt; <br>&gt; Hi Grail,<br>&gt; <br>&gt; Thanks for your patch! I assume you generated the patch based on a Unix<br>&gt; environment. Tried to compile pycrypto together with your patch on my<br>&gt; Windows machine. However, it did not work out.<br>&gt; After fixing two straightforward errors in setup.py (relevant to Windows <br>&gt; only,<br>&gt; see [1], [2]), I got stuck when linking the module MD4 and other hashing <br>&gt; methods<br>&gt; (MD2, etc).<br>&gt; <br>&gt; Now, when I compare the build process against Python 2, I see the following<br>&gt; difference:<br>&gt; <br>&gt; ###############################################################################<br>&gt; [Python 2:]<br>&gt; C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\link.exe /DLL <br>&gt; /nologo /INCRE<br>&gt; MENTAL:NO "/LIBPATH:C:\Program Files\Python26\libs" "/LIBPATH:C:\Program <br>&gt; Files\P<br>&gt; ython26\PCbuild" /EXPORT:initMD4 <br>&gt; build\temp.win32-2.6\Release\src/MD4.obj /OUT:b<br>&gt; uild\lib.win32-2.6\Crypto\Hash\MD4.pyd <br>&gt; /IMPLIB:build\temp.win32-2.6\Release\src\<br>&gt; MD4.lib /MANIFESTFILE:build\temp.win32-2.6\Release\src\MD4.pyd.manifest<br>&gt;     Creating library build\temp.win32-2.6\Release\src\MD4.lib and object <br>&gt; build\te<br>&gt; mp.win32-2.6\Release\src\MD4.exp<br>&gt; C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\mt.exe -nologo <br>&gt; -manifest build<br>&gt; \temp.win32-2.6\Release\src\MD4.pyd.manifest <br>&gt; -outputresource:build\lib.win32-2.6<br>&gt; \Crypto\Hash\MD4.pyd;2<br>&gt; <br>&gt; [Python 3:]<br>&gt; C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\link.exe /DLL <br>&gt; /nologo /INCRE<br>&gt; MENTAL:NO "/LIBPATH:C:\Program Files\Python31\libs" "/LIBPATH:C:\Program <br>&gt; Files\P<br>&gt; ython31\PCbuild" /EXPORT:PyInit_MD4 <br>&gt; build\temp.win32-3.1\Release\src/MD4.obj /OU<br>&gt; T:build\lib.win32-3.1\Crypto\Hash\MD4.pyd <br>&gt; /IMPLIB:build\temp.win32-3.1\Release\s<br>&gt; rc\MD4.lib /MANIFESTFILE:build\temp.win32-3.1\Release\src\MD4.pyd.manifest<br>&gt; LINK : error LNK2001: unresolved external symbol PyInit_MD4<br>&gt; build\temp.win32-3.1\Release\src\MD4.lib : fatal error LNK1120: 1 <br>&gt; unresolved ext<br>&gt; ernals<br>&gt; error: command '"C:\Program Files\Microsoft Visual Studio <br>&gt; 9.0\VC\BIN\link.exe"'<br>&gt; failed with exit status 1120<br>&gt; ###############################################################################<br>&gt; <br>&gt; It seems that the /EXPORT argument for the Windows Linker is assembled in a<br>&gt; different way. This leads to an export name, which does not exist as <br>&gt; function.<br>&gt; Hence the linker terminates with an error.<br>&gt; <br>&gt; Any idea what I need to change to get the /EXPORT name fixed? Is this <br>&gt; problem<br>&gt; located in pycrypto or in the Python distutils?<br>&gt; <br>&gt; <br>&gt; ##### Regarding the changes in setup.py:<br>&gt; [1] Changed the following stmt:<br>&gt; From<br>&gt; print &lt;&lt; sys.stderr "warning: GMP library not found; Not building <br>&gt; Crypto.PublicKey._fastmath."<br>&gt; to<br>&gt; print("warning: GMP library not found; Not building <br>&gt; Crypto.PublicKey._fastmath.", sys.stderr)<br>&gt; <br>&gt; [2] (Temporarily) disabled winrand.c which is included when using the <br>&gt; Windows platform.<br>&gt; <br>&gt; Cheers, Christoph<br>&gt; <br>&gt; _______________________________________________<br>&gt; pycrypto mailing list<br>&gt; pycrypto@lists.dlitz.net<br>&gt; http://lists.dlitz.net/cgi-bin/mailman/listinfo/pycrypto<br><div style="z-index: -1; position:absolute; top:0px; left: 0px; width: 100%; height: 1414px;"></div></div>                                               <br /><hr />Get straight to the Point <a href='http://clk.atdmt.com/NMN/go/157637060/direct/01/' target='_new'>Find a great deal on your next car.</a></body>
</html>