From: Jimmy R. <ji...@re...> - 2005-12-01 18:41:29
|
Denis Barmenkov wrote: > I found similar problem: >=20 > file test.py: > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D > from Crypto.Cipher import * >=20 > print 'ok' Because of the way Crypto.Cipher references those extension modules (they are never explicitly imported), py2exe doesn't know they are being imported. If you explicitly reference the ciphers you need then it works: file test.py: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D from Crypto.Cipher import AES, Blowfish print dir(AES) print dir(Blowfish) This works fine for me with your setup.py. Jimmy |
From: Denis B. <bar...@bp...> - 2005-12-02 09:24:24
|
IkppbW15IFJldHpsYWZmIiA8amltbXlAcmV0emxhZmYuY29tPg0KMDEuMTIuMjAwNSAyMTo0MQ0K DQogDQogICAgICAgIOvPzdU6ICAgIkRlbmlzIEJhcm1lbmtvdiIgPGJhcm1lbmtvdkBicGMucnU+ LCA8cHkyZXhlLXVzZXJzQGxpc3RzLnNvdXJjZWZvcmdlLm5ldD4NCiAgICAgICAg68/QydE6IA0K ICAgICAgICD0xc3BOiAgIFJFOiBbUHkyZXhlLXVzZXJzXSBSZTogRmFpbGluZyB0byBpZGVudGlm eSBzdWJwYWNrYWdlIG1vZHVsZQ0KDQoNCkRlbmlzIEJhcm1lbmtvdiB3cm90ZToNCj4gSSBmb3Vu ZCBzaW1pbGFyIHByb2JsZW06DQo+IA0KPiBmaWxlIHRlc3QucHk6DQo+ID09PT09PT09PT09PT09 PT09PT09PT09PT09DQo+IGZyb20gQ3J5cHRvLkNpcGhlciBpbXBvcnQgKg0KPiANCj4gcHJpbnQg J29rJw0KDQpCZWNhdXNlIG9mIHRoZSB3YXkgQ3J5cHRvLkNpcGhlciByZWZlcmVuY2VzIHRob3Nl IGV4dGVuc2lvbiBtb2R1bGVzDQoodGhleSBhcmUgbmV2ZXIgZXhwbGljaXRseSBpbXBvcnRlZCks IHB5MmV4ZSBkb2Vzbid0IGtub3cgdGhleSBhcmUgYmVpbmcNCmltcG9ydGVkLiBJZiB5b3UgZXhw bGljaXRseSByZWZlcmVuY2UgdGhlIGNpcGhlcnMgeW91IG5lZWQgdGhlbiBpdA0Kd29ya3M6DQoN CmZpbGUgdGVzdC5weToNCj09PT09PT09PT09PT09PT09PT09PT09PT09DQpmcm9tIENyeXB0by5D aXBoZXIgaW1wb3J0IEFFUywgQmxvd2Zpc2gNCg0KcHJpbnQgZGlyKEFFUykNCnByaW50IGRpcihC bG93ZmlzaCkNCg0KDQpUaGlzIHdvcmtzIGZpbmUgZm9yIG1lIHdpdGggeW91ciBzZXR1cC5weS4N Cg0KSmltbXkNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09DQoNClRoYW5rIHlvdSwgdGhpcyBkb2VzbnQgd29yazoNCg0KMS4gZmlsZSBjaGFuZ2VkIHRv Og0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCmZyb20gQ3J5cHRvLkNpcGhlciBp bXBvcnQgQUVTLCBBUkMyLCBBUkM0LCBCbG93ZmlzaCwgQ0FTVCwgREVTLCBERVMzLCANCklERUEs IFJDNSwgWE9SDQoNCnByaW50ICdvaycNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t DQoNCjIuIGV4ZSBjcmVhdGVkDQoNCjMuIHJ1biBlcnJvciBvY2N1cmVkOg0KVHJhY2ViYWNrICht b3N0IHJlY2VudCBjYWxsIGxhc3QpOg0KICBGaWxlICJ0ZXN0LnB5IiwgbGluZSAyLCBpbiA/DQpJ bXBvcnRFcnJvcjogY2Fubm90IGltcG9ydCBuYW1lIEFFUw0KDQo0LiBweTJleGUncyBvdXRwdXQg Y29udGFpbjoNCmNvcHlpbmcgZDpcUHl0aG9uMjRcbGliXHNpdGUtcGFja2FnZXNcQ3J5cHRvXENp cGhlclxBRVMucHlkIC0+IA0K8zpccHJvamVjdHNccGFyc2VfbG9nXGJ1aWxkXGJkaXN0LndpbjMy XHdpbmV4ZVxjb2xsZWN0LTIuNA0KDQpTaG91bGQgcHkyZXhlIGNvcHkgQUVTLnB5ZCB0byAuLlxj b2xsZWN0LTIuNFxDcnlwdG9cQ2lwaGVyIGRpcmVjdG9yeSBhcyBpbiANCnNvdXJjZSBQeXRob24v TGliIHRyZWU/DQoNCkRlbmlzDQogDQoNCg0KDQoNCg0K |
From: Yaroslav S. <ya...@an...> - 2005-12-02 11:13:30
|
> 1. file changed to: > -------------------------------- > from Crypto.Cipher import AES, ARC2, ARC4, Blowfish, CAST, DES, DES3, > IDEA, RC5, XOR > > print 'ok' > -------------------------------- > > 2. exe created > > 3. run error occured: > Traceback (most recent call last): > File "test.py", line 2, in ? > ImportError: cannot import name AES > > 4. py2exe's output contain: > copying d:\Python24\lib\site-packages\Crypto\Cipher\AES.pyd -> > С:\projects\parse_log\build\bdist.win32\winexe\collect-2.4 Your script with the very minimalistic setup.py (I'm sure generic one will also show the same results) works fine for me. === setup.py === from distutils.core import setup import py2exe setup(console=["test.py"],) ================ actually, you could use from spam.eggs import *, but in this case you'll have to play with `includes` and `packages` py2exe options. smth like ========= hiddenimports = [ "_strptime", "compileall", "select", "zlib", ... ] hiddenpackages = [ "spam.eggs.larch", ... ] ... def run_setup(): setup( ..., options={"py2exe": { "includes": hiddenimports, "packages": hiddenpackages }}, ..., ) ... ========= This was a part of setup.py (py2exe version 0.5.5) script I use for our software product. > Should py2exe copy AES.pyd to ..\collect-2.4\Crypto\Cipher directory as in > source Python/Lib tree? Content of my E:\...st.win32\winexe\collect-2.4\Crypto\Cipher ========= __init__.pyc AES.pyc ARC2.pyc ARC4.pyc Blowfish.pyc CAST.pyc DES.pyc DES3.pyc IDEA.pyc RC5.pyc XOR.pyc ========= Note pyc files instead of pyd! -- Best wishes, Yaroslav |
From: Jimmy R. <ji...@re...> - 2005-12-02 14:21:54
|
Denis Barmenkov wrote: > "Jimmy Retzlaff" <ji...@re...> > 01.12.2005 21:41 >> Denis Barmenkov wrote: >>> I found similar problem: >>> >>> file test.py: >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D >>> from Crypto.Cipher import * >>> >>> print 'ok' >>=20 >> Because of the way Crypto.Cipher references those extension modules >> (they are never explicitly imported), py2exe doesn't know they are = being >> imported. If you explicitly reference the ciphers you need then it >> works: >>=20 >> file test.py: >> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D >> from Crypto.Cipher import AES, Blowfish >> >> print dir(AES) >> print dir(Blowfish) >>=20 >>=20 >> This works fine for me with your setup.py. >>=20 >> Jimmy > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >=20 > Thank you, this doesnt work: >=20 > 1. file changed to: > -------------------------------- > from Crypto.Cipher import AES, ARC2, ARC4, Blowfish, CAST, DES, DES3, > IDEA, RC5, XOR >=20 > print 'ok' > -------------------------------- >=20 > 2. exe created > 3. run error occured: > Traceback (most recent call last): > File "test.py", line 2, in ? > ImportError: cannot import name AES Your new test.py still works for me (and apparently for Yaroslav as = well). I'm using Python 2.4.2, py2exe 0.6.3, and PyCrypto 2.0.1 as = compiled for Python 2.4 by Fuzzyman at: http://www.voidspace.org.uk/python/modules.shtml#pycrypto You might try deleting your build and dist folders as that can sometimes = help. >=20 > 4. py2exe's output contain: > copying d:\Python24\lib\site-packages\Crypto\Cipher\AES.pyd -> > =F3:\projects\parse_log\build\bdist.win32\winexe\collect-2.4 >=20 > Should py2exe copy AES.pyd to ..\collect-2.4\Crypto\Cipher directory = as in > source Python/Lib tree? Yes they should go into the Cipher folder (they do on mine). Try = clearing build and dist and if it still doesn't work let us know how = your versions of things differ from what I presented above. Jimmy |
From: Denis B. <bar...@bp...> - 2005-12-02 15:46:26
|
IkppbW15IFJldHpsYWZmIiA8amltbXlAcmV0emxhZmYuY29tPg0KMDIuMTIuMjAwNSAxNzoyMQ0K DQogDQogICAgICAgIOvPzdU6ICAgIkRlbmlzIEJhcm1lbmtvdiIgPGJhcm1lbmtvdkBicGMucnU+ LCA8cHkyZXhlLXVzZXJzQGxpc3RzLnNvdXJjZWZvcmdlLm5ldD4NCiAgICAgICAg68/QydE6IA0K ICAgICAgICD0xc3BOiAgIFJFOiBbUHkyZXhlLXVzZXJzXSBSZTogRmFpbGluZyB0byBpZGVudGlm eSBzdWJwYWNrYWdlIG1vZHVsZQ0KDQoNCkRlbmlzIEJhcm1lbmtvdiB3cm90ZToNCj4gIkppbW15 IFJldHpsYWZmIiA8amltbXlAcmV0emxhZmYuY29tPg0KPiAwMS4xMi4yMDA1IDIxOjQxDQo+PiBE ZW5pcyBCYXJtZW5rb3Ygd3JvdGU6DQo+Pj4gSSBmb3VuZCBzaW1pbGFyIHByb2JsZW06DQo+Pj4N Cj4+PiBmaWxlIHRlc3QucHk6DQo+Pj4gPT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4+PiBm cm9tIENyeXB0by5DaXBoZXIgaW1wb3J0ICoNCj4+Pg0KPj4+IHByaW50ICdvaycNCj4+IA0KPj4g QmVjYXVzZSBvZiB0aGUgd2F5IENyeXB0by5DaXBoZXIgcmVmZXJlbmNlcyB0aG9zZSBleHRlbnNp b24gbW9kdWxlcw0KPj4gKHRoZXkgYXJlIG5ldmVyIGV4cGxpY2l0bHkgaW1wb3J0ZWQpLCBweTJl eGUgZG9lc24ndCBrbm93IHRoZXkgYXJlIA0KYmVpbmcNCj4+IGltcG9ydGVkLiBJZiB5b3UgZXhw bGljaXRseSByZWZlcmVuY2UgdGhlIGNpcGhlcnMgeW91IG5lZWQgdGhlbiBpdA0KPj4gd29ya3M6 DQo+PiANCj4+IGZpbGUgdGVzdC5weToNCj4+ID09PT09PT09PT09PT09PT09PT09PT09PT09DQo+ PiBmcm9tIENyeXB0by5DaXBoZXIgaW1wb3J0IEFFUywgQmxvd2Zpc2gNCj4+DQo+PiBwcmludCBk aXIoQUVTKQ0KPj4gcHJpbnQgZGlyKEJsb3dmaXNoKQ0KPj4gDQo+PiANCj4+IFRoaXMgd29ya3Mg ZmluZSBmb3IgbWUgd2l0aCB5b3VyIHNldHVwLnB5Lg0KPj4gDQo+PiBKaW1teQ0KPiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiANCj4gVGhhbmsg eW91LCB0aGlzIGRvZXNudCB3b3JrOg0KPiANCj4gMS4gZmlsZSBjaGFuZ2VkIHRvOg0KPiAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiBmcm9tIENyeXB0by5DaXBoZXIgaW1wb3J0 IEFFUywgQVJDMiwgQVJDNCwgQmxvd2Zpc2gsIENBU1QsIERFUywgREVTMywNCj4gSURFQSwgUkM1 LCBYT1INCj4gDQo+IHByaW50ICdvaycNCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCj4gDQo+IDIuIGV4ZSBjcmVhdGVkDQo+IDMuIHJ1biBlcnJvciBvY2N1cmVkOg0KPiBUcmFj ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6DQo+ICAgRmlsZSAidGVzdC5weSIsIGxpbmUg MiwgaW4gPw0KPiBJbXBvcnRFcnJvcjogY2Fubm90IGltcG9ydCBuYW1lIEFFUw0KDQoNCllvdXIg bmV3IHRlc3QucHkgc3RpbGwgd29ya3MgZm9yIG1lIChhbmQgYXBwYXJlbnRseSBmb3IgWWFyb3Ns YXYgYXMgd2VsbCkuIA0KSSdtIHVzaW5nIFB5dGhvbiAyLjQuMiwgcHkyZXhlIDAuNi4zLCBhbmQg UHlDcnlwdG8gMi4wLjEgYXMgY29tcGlsZWQgZm9yIA0KUHl0aG9uIDIuNCBieSBGdXp6eW1hbiBh dDoNCg0KaHR0cDovL3d3dy52b2lkc3BhY2Uub3JnLnVrL3B5dGhvbi9tb2R1bGVzLnNodG1sI3B5 Y3J5cHRvDQoNCllvdSBtaWdodCB0cnkgZGVsZXRpbmcgeW91ciBidWlsZCBhbmQgZGlzdCBmb2xk ZXJzIGFzIHRoYXQgY2FuIHNvbWV0aW1lcyANCmhlbHAuDQoNCj4gDQo+IDQuIHB5MmV4ZSdzIG91 dHB1dCBjb250YWluOg0KPiBjb3B5aW5nIGQ6XFB5dGhvbjI0XGxpYlxzaXRlLXBhY2thZ2VzXENy eXB0b1xDaXBoZXJcQUVTLnB5ZCAtPg0KPiDzOlxwcm9qZWN0c1xwYXJzZV9sb2dcYnVpbGRcYmRp c3Qud2luMzJcd2luZXhlXGNvbGxlY3QtMi40DQo+IA0KPiBTaG91bGQgcHkyZXhlIGNvcHkgQUVT LnB5ZCB0byAuLlxjb2xsZWN0LTIuNFxDcnlwdG9cQ2lwaGVyIGRpcmVjdG9yeSBhcyANCmluDQo+ IHNvdXJjZSBQeXRob24vTGliIHRyZWU/DQoNCg0KWWVzIHRoZXkgc2hvdWxkIGdvIGludG8gdGhl IENpcGhlciBmb2xkZXIgKHRoZXkgZG8gb24gbWluZSkuIFRyeSBjbGVhcmluZyANCmJ1aWxkIGFu ZCBkaXN0IGFuZCBpZiBpdCBzdGlsbCBkb2Vzbid0IHdvcmsgbGV0IHVzIGtub3cgaG93IHlvdXIg dmVyc2lvbnMgDQpvZiB0aGluZ3MgZGlmZmVyIGZyb20gd2hhdCBJIHByZXNlbnRlZCBhYm92ZS4N Cg0KSmltbXkNCj09PT09PT09PT09PT09PT09PT09PT09PT09DQoNClRoYW5rIHlvdSwgSmltbXkh DQoNCkkgcmUtaW5zdGFsbGVkIDAuNi4zLCBhbmQgeW93IGFsbCB3b3JrcyBmaW5lIQ0KDQpSZWdh cmRzLA0KRGVuaXMNCg0KDQoNCg== |