首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我得到"UserWarning:模块dap已从无导入...“

为什么我得到"UserWarning:模块dap已从无导入...“
EN

Stack Overflow用户
提问于 2012-12-17 21:39:52
回答 3查看 11.8K关注 0票数 13

我已经从Ubuntu包安装了python-matplotlibpython-mpltoolkits.basemap。安装python-mpltoolkits.basemap还会将python-dap作为依赖项安装。

当我导入底图时,我收到以下警告:

代码语言:javascript
复制
>>> 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安装?(这可能是一些旧的手动安装的残留物。) Here是一个有点类似的警告消息,但在他的例子中,该消息指出了另一个冲突安装的位置。我的信息只写着None。这是什么意思?

编辑1:

代码语言:javascript
复制
>>> import sys
>>> print sys.modules['dap']
<module 'dap' (built-in)>

编辑2:

代码语言:javascript
复制
$ 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'

编辑3:是的,我似乎有sitecustomize.py

代码语言:javascript
复制
$ 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()

编辑4:实际上我可以通过以下方式得到错误:

代码语言:javascript
复制
>>> 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本身没有任何关系。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-18 08:41:38

我真的不能说我会理解细节,但很明显,每当安装了python-dap包,然后尝试import pkg_resources就会给出这个警告。Here是一些讨论。

按照here的建议(页面末尾的注释29 ),我将dap添加为文件/usr/lib/python2.7/dist-packages/dap-2.2.6.7.egg-info/namespace_packages.txt中的第一行,并且没有收到更多警告。希望这不会破坏任何东西。

票数 24
EN

Stack Overflow用户

发布于 2013-05-28 16:46:04

我最近不得不追踪一个类似的问题,以及错误消息的实际含义:

代码语言:javascript
复制
UserWarning: Module dap was already imported from None, but /usr/lib/python2.7/dist-packages is being added to sys.path

似乎是“在扩展'dap‘的路径时,发现了一个没有将'dap’声明为命名空间包的egg-info目录”。

这说明了两件事: python-dap在它自己的setup.py中缺少"namespace_packages='dap'“声明,在这种情况下,setuptools确实应该给出更好的错误消息……

票数 2
EN

Stack Overflow用户

发布于 2013-12-17 10:27:38

如果你不需要这个包,只需删除它,例如在Ubuntu或Debian系统apt-get remove --purge python-dap上为我删除了该包,这会使警告消失。安装某些包时,由于依赖关系建议,很容易意外安装您不需要的包。

当您尝试删除它时,打包系统将警告您,如果删除该包(在本例中为python-dap,但其他包也可能导致此错误发生)也会强制删除依赖于它的其他包。在我的例子中,没有其他直接依赖于python-dap的包,而且据我所知,我没有使用它做任何事情,所以卸载它很简单,没有痛苦,并且消除了警告。

其他软件包安装程序(如pipeasy_install等非操作系统打包系统)可能会使删除软件包变得更加困难;您可能需要手动删除软件包,因此我建议使用accepted answer来使警告静默,除非我在这里推荐的apt-get remove方法对您有效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13915269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档