PIP:只安装依赖项

48 投票
5 回答
40118 浏览
提问于 2025-04-15 19:37

我有一个脚本,它可以创建一个 virtualenv(虚拟环境),然后在里面安装 distributepip,接着可选地克隆一个 git 仓库。

现在我已经安装好了我将要工作的项目,但它的依赖项还没有安装。我该怎么做才能让 pip 安装所有的依赖,就像我输入 pip install MyApp 一样?

编辑:显然我的问题和 这个问题是重复的。

我不太确定,但 pip install -e . 似乎可以做到我想要的,而且不会留下太多多余的东西。不过我更希望我的代码不被链接到 site-packages 里。

5 个回答

5

要安装你项目所需要的依赖项(也就是 install_requiresextra_requires),你需要先用 setuptools 的 egg-info 来提取这些依赖项,然后再安装经过筛选后的依赖项列表:

python setup.py egg_info
pip install `grep -v '^\[' *.egg-info/requires.txt`
29

如果你的依赖项是在 setup.py 文件中定义的,你可以先把它们导出到一个外部文件,方法是:

python setup.py egg_info

这样会把你所有的依赖项列在 YOUR_PROJECT.egg-info/requires.txt 文件中。然后你可以使用 pip 来安装它们:

pip install -r *.egg-info/requires.txt

要删除你刚刚创建的文件,可以使用:

rm -rf *.egg-info/

为了节省一些复制粘贴的时间,可以使用:

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

在我的项目根目录下,输入 pip install -e . 这个命令可以安装所需的依赖包。

撰写回答