我正在寻找一种方法,使用pip或similiar将python包的列表安装到自定义目标目录(ex./mypath/python/pkgs/ ),但也排除/黑名单特定的依赖项。
我希望排除特定的依赖项,因为它们已经满足于不同的安装路径(例如anaconda安装)。我没有将包添加到默认python安装中的特权(我也不想这样)。
我目前正在使用pip的-r和-t选项。但还没有找到排除特定包的方法。
像这样的pip命令是理想的:
pip install --log pip.log -r req.txt -t /mypath/pypkgs/ --exclude exclude.txt
--no-deps
不是一个选项,因为我需要一些依赖项。
我目前正在使用python脚本来执行pip安装,其中包括我不需要通过的依赖项:
pip install --log pip.log -r req.txt -t /mypath/python/pkgs/
然后(自动)在pip安装完成后删除不需要的依赖项。
我希望pip命令的一些组合能够实现我正在寻找的一些简单明了的东西。我用的是pip 7.1.2。谢谢!
类似的,但我不升级,希望指定目标路径:
pip: upgrade package without upgrading particular dependency
发布于 2017-11-23 12:35:12
面对类似的问题,并且使用运行的bash,我设法将特定的包排除在
pip install $(grep -ivE "pkg1|pkg2|pkg3" requirements.txt)
其中,pkg1
等是要排除的包的名称。
发布于 2016-08-01 19:30:32
我认为这基本上可以通过几个步骤来实现,假设您使用的是虚拟环境或类似的.
pip freeze > requirements.txt
,您将得到所有的传递依赖项(例如,不排除任何东西)。pip install -r requirements.txt -t ... --no-deps
。瞧:您已经安装了所需的依赖项,而不包括特定的依赖项。发布于 2020-11-14 11:38:32
考虑到子依赖关系的一种方法是首先安装exclude.txt环境,然后安装req.txt环境,然后检查diff,最后将其安装到目标目录中。
使用在GNU/Linux上工作的virtualenv示例:
virtualenv tmpenv
source tmpenv/bin/activate
pip install -r exclude.txt
pip freeze > exclude-with-deps.txt
pip install -r req.txt
pip freeze > req-with-deps.txt
comm -13 exclude-with-deps.txt req-with-deps.txt > final-req.txt
pip install -r final-req.txt --no-deps -t pypkgs
https://stackoverflow.com/questions/33441033
复制相似问题