[issue38] bdist_egg extension stub loaders are broken

New submission from Philip Jenvey pjenvey@underboss.org:
There's two different stub loader generators in the code base: build_ext.write_stub and bdist_egg.write_stub
bdist_egg's stub loader always assumes the presence of a __loader__ value, which causes a NameError in some cases. build_ext's version of the stub loader does the right thing and only messes with __loader__ if it exists -- the following patch applys that check to bdist_egg's stub loader
This fix is particularly important for packages with optional C extensions deployed to Google App Engine (like simplejson, Genshi). Compiled extensions won't be imported by GAE (as they're not supported), so instead the stub loader is imported. Without a __loader__ present this results in:
File "/base/data/home/apps/sluggo-exp/2.1/lib/python2.5/site- packages/simplejson-1.8.1-py2.5-macosx-10.3-i386.egg/simplejson/_speedups.py", line 5, in __bootstrap__ del __bootstrap__, __loader__ NameError: global name '__loader__' is not defined
instead of an ImportError, which these packages expect to be raised when they need to fallback to the alternative to the compiled extension
This should really make it in for the next release; prioritized as critical
---------- files: bdist_egg-stub-loader_r65963.diff messages: 149 nosy: pjenvey priority: critical status: unread title: bdist_egg extension stub loaders are broken Added file: http://bugs.python.org/setuptools/file20/bdist_egg-stub-loader_r65963.diff
_______________________________________________ Setuptools tracker setuptools@bugs.python.org http://bugs.python.org/setuptools/issue38 _______________________________________________
participants (1)
-
Philip Jenvey