0

我已经手动构建了numpy,scipymatplotlib- 没有 root 权限(我需要新matplotlib的)。安装在标准位置的所有库:

~/.local/lib/python2.7

现在,当我尝试安装任何相关的东西时 -synaptic建议我安装系统范围内的所有库。有没有办法告诉我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 库的方法。

4

1 回答 1

1

在系统级别管理包的包管理器如何知道安装在用户目录中的东西,与系统级别相反的东西?

包管理器根据存储在包(无论是 rpm、deb 等)和/或包存储库中的元信息解决依赖关系。

为了实现您的目标,您可以选择两种选择中的任何一种。

首先是从你的源代码构建一个系统特定的包,然后通过你的包管理器安装它。请参阅创建内置发行版文档。它看起来像这样:

$ python setup.py bdist --format=rpm
$ rpm -i dist/$PACKAGE.rpm

这将使您的包管理器意识到已经提供了一些依赖项这一事实。

这种方法可能有效,也可能无效。

另一个首选选项是使用 python 包管理器(例如pip )并将所有包安装在虚拟环境中。这种方法有几个优点:

  1. 您可以拥有多个不同的软件包集,并安装不同版本的软件包。
  2. 您可以选择将您的虚拟环境与系统范围内安装的软件包隔离开来。
于 2012-08-20T12:53:55.790 回答