如何在本地安装现有系统python模块的扩展?
在没有根访问权限的远程系统上安装现有Python模块的扩展时遇到问题,例如安装。系统确实有如何在本地安装现有系统python模块的扩展?,python,module,Python,Module,在没有根访问权限的远程系统上安装现有Python模块的扩展时遇到问题,例如安装。系统确实有mpl\u工具包,但没有mpl\u工具包。basemap,我无法将basemap安装到系统范围的站点软件包目录(无根访问权限) 如果我将mpl_工具包.basemap安装到$HOME/.local/lib/pythonX.Y/site packages/mpl_工具包,那么 从mpl_toolkits.basemap导入basemap 将无法找到basemap,因为sys.path首先将其引导到系统范围的
mpl\u工具包
,但没有mpl\u工具包。basemap
,我无法将basemap
安装到系统范围的站点软件包目录(无根访问权限)
如果我将mpl_工具包.basemap
安装到$HOME/.local/lib/pythonX.Y/site packages/mpl_工具包
,那么
从mpl_toolkits.basemap导入basemap
将无法找到basemap
,因为sys.path
首先将其引导到系统范围的mpl\u工具包
包,或者如果sys.path
首先引导到我的本地安装,则我无法使用完整的系统范围的mpl\u工具包
我的解决方案是在本地安装basemap
作为mpl\u工具包\u ext.basemap
,并修改任何代码以从mpl\u工具包\u ext
导入basemap
,而不是预期的mpl\u工具包
这是可行的,但不雅观且容易出错。是否有一种“正确”的方式来安装Python模块的扩展?我希望Python在放弃之前先搜索系统的
mpl_工具包
,然后如果没有找到任何东西,检查我在本地安装的mpl_工具包
($HOME/.local/lib/pythonX.Y/site packages/mpl_工具包
)。更改basemap包(此处提交)我可以这样导入系统外mpl_toolkits.basemap:
(这很快就完成了,有些东西可能是不必要的)
basemap mpl_toolkits目录中的mybasemap.py(可能需要更改):
然后做:
from mybasemap import Basemap
在最后一个脚本中(将路径添加到mybasemap.py之后)。imo最佳解决方案是使用virtualenv+virtualenvwrapper。您是否尝试过操纵sys.path来更改搜索顺序?但命名可能确实是个问题。但是如果你可以安装mpl_toolkits.basemap,为什么不在本地安装mpl_toolkits呢?我确实可以在本地安装完整的mpl_toolkits,但是(1)这并不比将本地安装的名称改为mpl_toolkits_ext和(2)更优雅远程系统相当复杂,经常更新/更改,我不希望维护像mpl_工具包这样的大型软件包。
from mybasemap import Basemap