使用pip将软件包安装到特定的相关目录

时间:2013-04-24 17:45:36

标签: python pip distutils

我需要在这样的目录中安装几个软件包:

../站点包/ myNameSpace对象/产品的

主要是出于历史原因,因此进口不会中断。

有几个这样的包,我们需要能够根据项目的需要挑选我们需要的包。

所以,这一切都需要在requirements.txt文件中发生,所以在requirements.txt

中就是这样的
requests
celery
beautifulsoup4
path/to/mypackage1
path/to/mypackage3
path/to/mypackage5

(例如)

然后我需要

path/to/mypackage1
path/to/mypackage3
path/to/mypackage5

安装到:

../site-packages/mynamespace/packages

因此,mypackage1,mypackage3和mypacakge5都可以从

获得
from mynamespace.packages import mypackage1 #(and 3 and 5)

到目前为止,我尝试做的是创建一个site.cfg文件以与setup.py一起使用,但我认为pip可能正在创建它自己的安装值并绕过site.cfg,看起来像这样:

[install]
install-base=$HOME
install-purelib=Lib\site-packages\mynamespace\packages

此外,每个环境都在虚拟环境中运行。

我想要运行两个单独的需求文件,但这是不可行的。我需要将所有包放在一个require.txt文件中,该文件只需通过pip install -r requirements.txt调用

我想让他们直接安装到site-packages,然后将导入添加到mynamespace.packages.__init__.py,但这也是行不通的。这些包需要物理上位于site-pacakges.mynamespace.packages。

之下

此外, - target对我不起作用,因为A.)这只是绝对路径(相对路径有效,但这是基于用户当前所在的位置)B。)这违反了上述单个要求requirements.txt文件(否则请求等都将转到另一个目录)

我认为必须有某种方法来破解site.cfg。

理想情况下,如果我可以在requirements.txt中添加--target = relative_path来解决我的问题,但我不认为这是可能的。需求文件中只允许几个选项(-e为一个)但不允许-t。即便如此,它必须是基于用于安装的site-packages目录的相对而不是相对于用户所在的位置。

此外,这需要适用于所有操作系统。

谢谢

0 个答案:

没有答案