如何使用setup.py仅安装依赖项?

26

我并不想安装我的包本身,但我有兴趣安装我包中所使用的所有依赖项。是否可以使用setup.py来完成此操作?似乎setup.py会同时安装我的包和所有依赖项。


1
жүҖд»ҘпјҢжӮЁжңүдёҖдёӘдҫқиө–дәҺxyzзҡ„еҢ…abcпјҢжӮЁжғіе®үиЈ…xyzдҪҶдёҚе®үиЈ…abcпјҢжҳҜеҗ—пјҹ - Nilesh
https://pythonhosted.org/setuptools/setuptools.html#easy-install-find-and-install-packages - sobolevn
1
如果您下载的软件包有一个要求文件,那么只需运行pip install -r requirements.txt即可轻松安装所需的依赖。 - user707650
3个回答

14

在pip install命令中使用-e标志

pip install -e .

2
我对此感到困惑 - -e 是指“可编辑模式”,它会执行诸如符号链接依赖项的工作目录之类的操作。在这种情况下,OP想要安装所有东西“真实存在”,只是不包括正在开发的一个软件包。这个方法能很好地处理这种用例吗? - Ken Williams
@KenWilliams 可编辑模式将安装所有内容“真实”,除了您正在使用的软件包(如您所提到的,这将被“符号链接”)。但是您可能不希望此链接保留 - 这就是您使用随后的 pip uninstall 处理的技巧。 - karlicoss
这显然不是正确的答案!为什么会被接受?这将做比“仅安装依赖项”更多的事情。 - Charlie Parker

12

我发现可靠且简单的方法只有这一个:

pip install . && pip uninstall `python setup.py --name`

1
谢谢,回答很好。一个小建议:使用pip uninstall --yes,这样它就不会提示您(例如在Dockerfile中)。 - karlicoss
这是个好的答案!一个小注释就是它不能在Python3上工作,但很容易进行调整。 - Qi Luo
@QiLuo 我使用Python 3,你遇到了什么问题? - Ken Williams
在同时存在Python2和Python3的环境中,我可以使用pip3 install . && pip3 uninstall `python3 setup.py --name` - Qi Luo
@QiLuo 是的,那是因为在你的环境中 pip 和 python 显然被称为 pip3python3。而在我的环境中,它们只被称为 pippython - Ken Williams

1

如果你想从`setup.py`执行此操作:

python setup.py egg_info
pip install -r *.egg-info/requires.txt
rm -rf *.egg-info/

所有这些都是从项目文件夹运行的,通常对我来说,它是我的 Github 根目录,其中包含 setup.py。

致谢:https://dev59.com/03E95IYBdhLWcg3watQ3#53251585


正是我想要的Docker容器! - smerkd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接