Correct fixup for main python ports

David Osguthorpe david.osguthorpe at gmail.com
Tue May 5 12:12:50 PDT 2009


Hi,

OK - so here is the real deal for solving what extra modules to install with the base python
port

_ssl.so most definitely should be installed

why??

because in the particular case of _ssl.so there is no "failed to import" message - as that
is protected in socket.py by try/except  - the object my script imported was urllib2.py
which then does import both socket and hashlib (hashlib appears to have been installed from
other python stuff installed as part of py-gtk2)

so you get the extremely obscure error message:   the url type https does not exist

looking at it there appears to be no consistency between which scripts in 
Frameworks/Python.framework/Versions/2.5/lib/python2.5
use unprotected imports of these modules and ones which you do not get an error message for eg. pdb.py
does protect the readline import with try/except - and gives no error message if it does
not exist 

so

macports should install by default any module which is imported from .py scripts in Frameworks/Python.framework/Versions/2.5/lib/python2.5 
(which is identical between /System/Library from apple and /opt/local/Library from macports)

_tkinter, _sqlite3, _curses, _curse_panel,  are not imported by any .py file in that directory

_hashlib, _sha256, _sh512, _sqlite3, _ssl, bz2, readline, zlib are imported by .py files in that directory

as the .py files in Frameworks/Python.framework/Versions/2.5/lib/python2.5 are from the main python
install there are no dependencies defined for them so you can never tell what you need to install

David


More information about the macports-dev mailing list