2

我在没有 root 访问权限的远程系统上安装现有 Python 模块的扩展时遇到问题,例如安装mpl_toolkits.basemap。系统有但没有,我无法安装系统范围的站点包目录(没有 root 访问权限)。mpl_toolkits mpl_toolkits.basemapbasemap

如果我安装mpl_toolkits.basemap$HOME/.local/lib/pythonX.Y/site-packages/mpl_toolkits那么

from mpl_toolkits.basemap import Basemap

将无法找到basemap,因为sys.path首先将其引导至系统范围的mpl_toolkits软件包,或者如果sys.path首先引导至我的本地安装,那么我将无法使用完整的系统范围的mpl_toolkits.

我的解决方案是在本地安装basemap并修改要从mpl_toolkits_ext.basemap中导入的任何代码,而不是预期的. basemapmpl_toolkits_extmpl_toolkits

这可行,但不优雅且容易出错。是否有一种“正确”的方式来安装 Python 模块的扩展?我希望 Python 先搜索系统mpl_toolkits,然后如果找不到任何东西,请在放弃之前检查我的本地安装mpl_toolkits( )。$HOME/.local/lib/pythonX.Y/site-packages/mpl_toolkits

4

1 回答 1

0

通过更改底图包(在此处提交https://github.com/matplotlib/basemap/pull/154),我可以以如下方式导入系统范围外的 mpl_toolkits.basemap:

(这很快就完成了,有些东西可能不需要)

底图 mpl_toolkits 目录中的 mybasemap.py(可能需要更改这些):

from mpl_toolkits import *
import mpl_toolkits

import sys
sys.path.insert (0, './mpl_toolkits/')
sys.path.insert (1, './')

from basemap import Basemap

然后做:

from mybasemap import Basemap

在最终脚本中(在添加到 mybasemap.py 的路径之后)。

于 2014-05-13T12:18:32.627 回答