Почему я получаю «UserWarning: модуль dap уже импортирован из None …»

У меня есть python-matplotlib и python-mpltoolkits.basemap установленные из пакетов Ubuntu. Установка python-mpltoolkits.basemap также устанавливает python-dap как зависимость.

Когда я импортирую базовую карту, я получаю это предупреждение:

 >>> 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__) 

Означает ли это, что у меня две противоречивые установки dap ? (Это может быть возможно, остатки некоторых старых ручных установок). Вот несколько аналогичное предупреждающее сообщение, но в его случае сообщение сообщает, где находится другая, конфликтующая, установка. Мое сообщение просто говорит « None . Что это значит?

ИЗМЕНИТЬ 1:

 >>> import sys >>> print sys.modules['dap'] <module 'dap' (built-in)> 

EDIT 2:

 $ 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: да, похоже, у меня есть sitecustomize.py :

 $ 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: на самом деле я могу получить ошибку:

 >>> 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 

поэтому это не имеет никакого отношения к mpl_toolkits.basemap как таковой.

3 Solutions collect form web for “Почему я получаю «UserWarning: модуль dap уже импортирован из None …»”

Я не могу сказать, что я бы понял детали, но, видимо, всякий раз, когда пакет python-dap установлен, тогда попытка import pkg_resources дает это предупреждение. Вот несколько обсуждений.

Следуя советам здесь (комментарий 29 в конце страницы), я добавил dap в качестве первой строки в файле /usr/lib/python2.7/dist-packages/dap-2.2.6.7.egg-info/namespace_packages.txt и не получайте больше предупреждений. Надеюсь, это ничего не сломает.

Недавно мне пришлось отследить аналогичную проблему и фактический смысл сообщения об ошибке:

 UserWarning: Module dap was already imported from None, but /usr/lib/python2.7/dist-packages is being added to sys.path 

Похоже, что «Расширяя путь для« dap », нашел директорию с информацией о яйце, которая не объявляет« dap »как пакет пространства имен».

Это говорит о двух вещах: в python-dap отсутствует объявление namespace_packages = ['dap'] в его собственном setup.py, а setuptools действительно должно дать лучшее сообщение об ошибке в этом случае …

Если вам не нужен пакет, просто удалите его, например, в системе Ubuntu или Debian. apt-get remove --purge python-dap удалил пакет для меня и отключил это предупреждение. Легко случайно установить пакеты, которые вам не нужны, из-за рекомендаций по зависимостям при установке некоторых пакетов.

Когда вы попытаетесь удалить его, система упаковки предупредит вас, если удаление пакета (в этом случае python-dap , но другие пакеты могут вызвать эту ошибку) тоже заставит удалить другие пакеты, которые зависят от него. В моем случае нет других пакетов, которые напрямую зависели от python-dap и я не использовал его ни для чего, о чем я знал, поэтому его удаление было простым, безболезненным и заставило замолчать предупреждение.

Другие инсталляторы пакетов (например, системы упаковки, отличные от ОС, такие как pip или easy_install ) могут затруднить удаление пакета; вам может потребоваться удалить пакет вручную, поэтому вместо этого я рекомендую принятый ответ как способ заставить замолчать предупреждение, если только метод apt-get remove который я вам рекомендовал, не работает для вас.

  • Сочетание случайных моделей леса в изучении scikit
  • Является ли Python запрашивает объект Session совместно с gevent greenlets, потокобезопасным (между зелеными)?
  • Избегание циклического (циклического) импорта в Python?
  • почему мой код не расшифровывает зашифрованную строку на основе словаря?
  • Переменная именования / связывания переменных Python
  • Python: перезаписать импорт numpy из Abaqus с другой версией numpy
  • Чтение файла с тайм-аутом в Python
  • Видя все значения переменных в python по мере их запуска
  • Как постоянно отображать вывод python на веб-странице?
  • Как получить список листов (имя и «gid») в электронной таблице Google с помощью Drive API?
  • Запрос ввода всегда внизу
  • Python - лучший язык программирования в мире.