我手动构建了numpy
,scipy
,matplotlib
等 - 没有root权限(我需要新的matplotlib
)。所有libs都安装在标准位置:
~/.local/lib/python2.7
现在,当我尝试安装任何相关内容时,synaptic
建议我在系统范围内安装所有lib。有没有办法告诉synaptic
使用本地安装的库?
我尝试将~/.local/lib/python2.7/site-packages
与/usr/lib/python2.7
联系起来 - 没有帮助。
修改:
如果我克隆一个python包,并将setup.py中的名称更改为ubuntu包的名称,然后构建:
python setup.py bdist --format=rpm
然后将其转换为与外星人的deb:
sudo alien -k my.rpm
然后安装deb:
sudo dpkg -i my.deb
然后synaptic
会将其识别为一个包(请记住我已经在setup.py中调整了名称)。
但我无法找到一种让突触感知本地安装的python库的方法。
答案 0 :(得分:1)
管理系统级别的软件包的软件包管理器如何知道有关安装在用户目录中的内容的任何内容,与系统级别相反的内容
包管理器根据存储在包(无论是rpm,deb,无论如何)和/或包存储库中的元信息来解析依赖关系。
为了达到目标,您可以选择以下两种方式之一。
首先,从源代码构建特定于系统的软件包,然后通过软件包管理器进行安装。请参阅Creating Built Distributions文档。它看起来像这样:
$ python setup.py bdist --format=rpm
$ rpm -i dist/$PACKAGE.rpm
这将使您的包管理器意识到已经提供了一些依赖性。
这种方法可能有效,也可能无效。
另一个首选方法是使用pip之类的python包管理器,并在virtual environment中安装所有包。这种方法有几个优点: