我有一个脚本,它创建一个virtualenv
,安装distribute
并pip
在其中,然后可选地克隆一个git
repo。
现在我已经安装了我将要处理的项目。但它的依赖项没有安装。我怎样才能pip
安装所有依赖项,就好像我已经发布了一个pip install MyApp
?
编辑:显然我的问题是这个问题的副本。
不完全确定,但pip install -e .
似乎在没有太多额外的东西的情况下做我想做的事。如果我的代码没有链接,我会更喜欢site-packages
。
我有一个脚本,它创建一个virtualenv
,安装distribute
并pip
在其中,然后可选地克隆一个git
repo。
现在我已经安装了我将要处理的项目。但它的依赖项没有安装。我怎样才能pip
安装所有依赖项,就好像我已经发布了一个pip install MyApp
?
编辑:显然我的问题是这个问题的副本。
不完全确定,但pip install -e .
似乎在没有太多额外的东西的情况下做我想做的事。如果我的代码没有链接,我会更喜欢site-packages
。
如果您的依赖项是在setup.py
文件中定义的,您可以首先使用以下命令将它们转储到外部文件:
python setup.py egg_info
这将列出YOUR_PROJECT.egg-info/requires.txt
文件中的所有依赖项。然后您可以使用以下命令安装它们pip
:
pip install -r *.egg-info/requires.txt
在我的包根发行pip install -e .
安装依赖项。
您应该使用 pip 要求文件。
本质上,将所有要求放在文件的每一行中,然后使用命令将其传递给 pip
pip install -r requirements.txt
更重要的是,如果你有一个标准环境,pip 实际上可以使用以下命令从现有安装中转储这样的文件:
pip freeze
您可以将由此生成的文件直接放入 pip 需求中,并从部署脚本中调用前面的命令。
很酷,不是吗?:)
要安装项目的依赖项(即install_requires
+ extra_requires
),您必须使用 setuptools 提取依赖项egg-info
,然后安装组合依赖项的过滤列表:
python setup.py egg_info
pip install `grep -v '^\[' *.egg-info/requires.txt`