python-mpltoolkits.basemap installed from Ubuntu packages. Installing
python-mpltoolkits.basemap also installs
python-dap as a dependency.
When I import basemap, I get this warning:
>>> import mpl_toolkits.basemap /usr/lib/pymodules/python2.7/mpl_toolkits/__init__.py:2: UserWarning: Module dap was already imported from None, but /usr/lib/python2.7/dist-packages is being added to sys.path __import__('pkg_resources').declare_namespace(__name__)
Does this mean I have 2 conflicting installs of
dap? (That might be possible, remnants of some old manual installs.) Here is a somewhat similar warning message, but in his case the message tells where the other, conflicting, install is located. My message just says
None. What does this mean?
>>> import sys >>> print sys.modules['dap'] <module 'dap' (built-in)>
$ python -S Python 2.7.3 (default, Sep 26 2012, 21:53:58) [GCC 4.7.2] on linux2 >>> import sys >>> print sys.modules['dap'] Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 'dap'
EDIT 3: yes I seem to have
$ cat /etc/python2.7/sitecustomize.py # install the apport exception handler if available try: import apport_python_hook except ImportError: pass else: apport_python_hook.install()
EDIT 4: actually I can get the error by:
>>> import pkg_resources __main__:1: UserWarning: Module dap was already imported from None, but /usr/lib/python2.7/dist-packages is being added to sys.path
so this has nothing to do with
mpl_toolkits.basemap as such.
I can't really say that I'd understand the details, but apparently whenever the package
python-dap is installed, then trying to
import pkg_resources gives this warning. Here is some discussion.
Following advice from here (comment 29 at the end of the page), I added
dap as the first line in file
/usr/lib/python2.7/dist-packages/dap-220.127.116.11.egg-info/namespace_packages.txt and get no more warnings. Hope this does not break anything.
I recently had to track down a similar problem, and the actual meaning of the error message:
UserWarning: Module dap was already imported from None, but /usr/lib/python2.7/dist-packages is being added to sys.path
Appears to be "While extending the path for 'dap', found an egg-info directory that does not declare 'dap' to be a namespace package".
This suggests two things: python-dap is missing a "namespace_packages=['dap']" declaration in its own setup.py, and setuptools really should give a better error message in this case...