我需要在这样的目录中安装几个软件包:
../站点包/ 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目录的相对而不是相对于用户所在的位置。
此外,这需要适用于所有操作系统。
谢谢