我在远程系统上安装现有Python模块的扩展时遇到问题,我没有root访问权限,例如安装mpl_toolkits.basemap。系统 有mpl_toolkits
但不 mpl_toolkits.basemap
,我无法将basemap
安装到系统范围的网站包目录(没有root访问权限。)
如果我将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
并修改任何代码,以便从basemap
而不是预期的mpl_toolkits_ext
导入mpl_toolkits
。
这样可行,但不够优雅且容易出错。有没有“正确”的方法来安装Python模块的扩展?我希望Python首先搜索系统的mpl_toolkits
,然后如果在放弃之前没有找到任何内容来检查mpl_toolkits
($HOME/.local/lib/pythonX.Y/site-packages/mpl_toolkits
)的本地安装。
答案 0 :(得分: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的路径之后)。