By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
446,361 Members | 1,700 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 446,361 IT Pros & Developers. It's quick & easy.

python2.5 importerror on md5

P: n/a
i compiled and installed the release version of python 2.5 for linux to
a directory accessible to 2 computers, configured with
--prefix=/usr/arch (which is accessible to both machines). the
installation went fine and when i run python on one machine i can do
from hashlib import * without a problem. on the other machine i get the
following error:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/arch/lib/python2.5/hashlib.py", line 104, in <module>
md5 = __get_builtin_constructor('md5')
File "/usr/arch/lib/python2.5/hashlib.py", line 31, in
__get_builtin_constructor
import _md5
ImportError: No module named _md5

I have the file md5.py , md5.pyo , and md5.pyc in
/usr/arch/lib/python2.5/ so I don't know why python is having a problem
finding the md5 module...

The sys.path is equal on both machines :
['', '/usr/arch/lib/python25.zip', '/usr/arch/lib/python2.5',
'/usr/arch/lib/python2.5/plat-linux2',
'/usr/arch/lib/python2.5/lib-tk',
'/usr/arch/lib/python2.5/lib-dynload',
'/usr/arch/lib/python2.5/site-packages',
'/usr/arch/lib/python2.5/site-packages/gtk-2.0']

Here is the version info :
Python 2.5 (r25:51908, Oct 23 2006, 13:38:11)
[GCC 3.2.3 20030502 (Red Hat Linux 3.2.3-56)] on linux2

If anyone has encountered similar problems or knows of a way to
fix/suggestions please let me know.

Thanks in advance.
Sam

Oct 23 '06 #1
Share this Question
Share on Google+
6 Replies


P: n/a
samn wrote:
i compiled and installed the release version of python 2.5 for linux to
a directory accessible to 2 computers, configured with
--prefix=/usr/arch (which is accessible to both machines). the
installation went fine and when i run python on one machine i can do
from hashlib import * without a problem. on the other machine i get the
following error:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/arch/lib/python2.5/hashlib.py", line 104, in <module>
md5 = __get_builtin_constructor('md5')
File "/usr/arch/lib/python2.5/hashlib.py", line 31, in
__get_builtin_constructor
import _md5
ImportError: No module named _md5

I have the file md5.py , md5.pyo , and md5.pyc in
/usr/arch/lib/python2.5/ so I don't know why python is having a problem
finding the md5 module...

The sys.path is equal on both machines :
['', '/usr/arch/lib/python25.zip', '/usr/arch/lib/python2.5',
'/usr/arch/lib/python2.5/plat-linux2',
'/usr/arch/lib/python2.5/lib-tk',
'/usr/arch/lib/python2.5/lib-dynload',
'/usr/arch/lib/python2.5/site-packages',
'/usr/arch/lib/python2.5/site-packages/gtk-2.0']

Here is the version info :
Python 2.5 (r25:51908, Oct 23 2006, 13:38:11)
[GCC 3.2.3 20030502 (Red Hat Linux 3.2.3-56)] on linux2

If anyone has encountered similar problems or knows of a way to
fix/suggestions please let me know.
I believe the _md5 module (as opposed to the md5 module) is a compiled
extension. I'm guessing the import succeeds on the machine you used to
build python.

Try

import _md5
print _md5.__file__

and see if you can find out where it's being loaded from. You'll
probably find that you also need to tailor the sysprefix parameter, or
some such.

regards
Steve

--
Steve Holden +44 150 684 7255 +1 800 494 3119
Holden Web LLC/Ltd http://www.holdenweb.com
Skype: holdenweb http://holdenweb.blogspot.com
Recent Ramblings http://del.icio.us/steve.holden

Oct 23 '06 #2

P: n/a
I believe the _md5 module (as opposed to the md5 module) is a compiled
extension. I'm guessing the import succeeds on the machine you used to
build python.

Try

import _md5
print _md5.__file__

and see if you can find out where it's being loaded from. You'll
probably find that you also need to tailor the sysprefix parameter, or
some such.
You are correct that import md5 works fine on the machine that I
compiled on and only has problems on the other machine. I wasn't able
to import _md5 , even on the machine I compiled on.
Here's what I get on the machine I compiled on:
Python 2.5 (r25:51908, Oct 23 2006, 13:38:11)
[GCC 3.2.3 20030502 (Red Hat Linux 3.2.3-56)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>import md5
import _md5
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named _md5
>>import md5
print md5.__file__
/usr/arch/lib/python2.5/md5.py

sys.prefix is equal on both machines:
>>>import sys
sys.prefix
'/usr/arch'

thanks for any help
sam

Oct 23 '06 #3

P: n/a
samn wrote:
>>I believe the _md5 module (as opposed to the md5 module) is a compiled
extension. I'm guessing the import succeeds on the machine you used to
build python.

Try

import _md5
print _md5.__file__

and see if you can find out where it's being loaded from. You'll
probably find that you also need to tailor the sysprefix parameter, or
some such.


You are correct that import md5 works fine on the machine that I
compiled on and only has problems on the other machine. I wasn't able
to import _md5 , even on the machine I compiled on.
Here's what I get on the machine I compiled on:
Python 2.5 (r25:51908, Oct 23 2006, 13:38:11)
[GCC 3.2.3 20030502 (Red Hat Linux 3.2.3-56)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>>import md5
import _md5

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named _md5
>>>>import md5
print md5.__file__

/usr/arch/lib/python2.5/md5.py

sys.prefix is equal on both machines:
>>>>import sys
sys.prefix

'/usr/arch'

thanks for any help
sam
Try looking for md5.so - it'll probably be somewhere like
/usr/lib/python2.5/lib-dynload. When I said sys-prefix I meant the
--exec-prefix configuration option, but actually I'm not sure what
determines where shared libraries end up.

At least knowing what you are looking for should help. This may affect
other modules that use extension support.

regards
Steve
--
Steve Holden +44 150 684 7255 +1 800 494 3119
Holden Web LLC/Ltd http://www.holdenweb.com
Skype: holdenweb http://holdenweb.blogspot.com
Recent Ramblings http://del.icio.us/steve.holden

Oct 23 '06 #4

P: n/a
i think the problem is different versions of openssl on the two
machines , 0.9.7a and 0.9.8b

Oct 23 '06 #5

P: n/a
On Mon, Oct 23, 2006 at 01:28:46PM -0700, samn wrote:
i think the problem is different versions of openssl on the two
machines , 0.9.7a and 0.9.8b
I second that this is the likely culprit. I got bit by it while trying to
do cross compile. The module build process assumes a couple of locations that
a particular library might be and takes the first one it finds, regardless of
which one you actually want it to use. I ended up making modifications to
what modules were installed to get md5 to finally import.

My experiences are outlined at this page:
http://whatschrisdoing.com/blog/2006...ile-python-25/

-Chris
Oct 23 '06 #6

P: n/a

Chris Lambacher wrote:
On Mon, Oct 23, 2006 at 01:28:46PM -0700, samn wrote:
i think the problem is different versions of openssl on the two
machines , 0.9.7a and 0.9.8b
I second that this is the likely culprit. I got bit by it while trying to
do cross compile. The module build process assumes a couple of locations that
a particular library might be and takes the first one it finds, regardless of
which one you actually want it to use. I ended up making modifications to
what modules were installed to get md5 to finally import.

My experiences are outlined at this page:
http://whatschrisdoing.com/blog/2006...ile-python-25/

-Chris
thanks , i actually ended up installing openssl 0.9.8b on the machine
with version 0.9.7a and then reinstalling hashlib (after taking out
part of setup.py that doesn't let you install for python >= 2.5) in the
right place and then it worked

Oct 23 '06 #7

This discussion thread is closed

Replies have been disabled for this discussion.