Am 12.09.2014 21:24, schrieb Eric V. Smith:
[Oops, replying to the list this time. Sorry for the dupe, Thomas.]
On 9/12/2014 3:14 PM, Thomas Heller wrote:
So it seems that it is a bug in setuptools: It must not create or install these pth files when installing in Python 3.3 or newer (which implement PEP 420).
PEP 420 goes out of its way to support pkgutil.extend_path(): http://legacy.python.org/dev/peps/pep-0420/#migrating-from-legacy-namespace-...
So it should be possible for some cross-version code to work.
My point is that the source code for zope.interface (for example) has the magic code in the zope/__init__.py file, right beneath the zope/interface/ directory: """ try: import pkg_resources pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil __path__ = pkgutil.extend_path(__path__, __name__) """ IMO this is to support the legacy way. See: https://github.com/zopefoundation/zope.interface/blob/master/src/zope/__init... However, when installing it in Python 3.4, this __init__.py file is NOT installed. Instead, the 'zope' directory ONLY contains the 'interface' subdirectory with all the code. But a .pth file is installed that does the strange things that I mentioned in the original post. Thomas