我已经通过Ubuntu软件包安装了大部分模块,因此他们已经/usr/lib/python3/dist-packages
了。有些太旧或无法通过Ubuntu使用,所以我通过点子安装了它们,并且它们在/usr/local/lib/python3.3/dist-packages
中。
到目前为止一切顺利。但是,两者都包含一个包mpl_toolkits
,但内容不同。 import mpl_toolkits.basemap
尽管存在/usr/local/lib/python3.3/dist-packages/mpl_toolkits/basemap
但仍然失败,因为mpl_toolkits
中首先找到/usr/lib/python3/dist-packages/mpl_toolkits
,其中包含许多模块,但不包含basemap
。
因此,实际上,分发级mpl_toolkits
是自定义安装mpl_toolkits
的影子。处理这个问题的正确方法是什么?
答案 0 :(得分:0)
通常情况下,这应该由包__path__
属性:
In [4]: mpl_toolkits.__path__
Out[4]:
['/usr/local/lib/python3.3/dist-packages/mpl_toolkits',
'/usr/lib/python3/dist-packages/mpl_toolkits']
但是,如果第二个mpl_toolkits
已安装 后导入第一个,需要重新加载mpl_toolkits
以实现其在文件系统上多个位置的分发。