muh*_*huk 26 python pip distribution virtualenv distribute
我有一个脚本,可以创建virtualenv,安装distribute并pip在其中,然后可选地克隆一个gitrepo.
现在我已经安装了我将要开发的项目.但是没有安装它的依赖项.如何pip安装所有依赖项,就好像我已经发布了一样pip install MyApp?
编辑:显然我的问题是这一个的重复.
不完全确定,但pip install -e .似乎做我想要的,没有太多额外的东西躺在身边.如果我的代码没有链接,我更喜欢site-packages.
muh*_*huk 20
在我的包根发布pip install -e .安装依赖项.
如果在setup.py文件中定义了依赖项,则可以使用以下命令将它们转储到外部文件:
python setup.py egg_info
Run Code Online (Sandbox Code Playgroud)
这将列出YOUR_PROJECT.egg-info/requires.txt文件中的所有依赖项.然后你可以使用pip以下方法安装它
pip install -r *.egg-info/requires.txt
Run Code Online (Sandbox Code Playgroud)
您应该使用pip要求文件.
基本上,将所有需求放在一个文件中的每一行中,并使用该命令将其传递给pip
pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
此外,如果您有标准环境,pip实际上可以使用以下命令从现有安装中转储此类文件:
pip freeze
Run Code Online (Sandbox Code Playgroud)
您可以将生成的文件直接放入pip要求,然后从部署脚本中调用上一个命令.
很酷,不是吗?:)
要安装项目的依赖项(即install_requires+ extra_requires),您必须使用 setuptools 提取依赖项egg-info,然后安装组合依赖项的过滤列表:
python setup.py egg_info
pip install `grep -v '^\[' *.egg-info/requires.txt`
Run Code Online (Sandbox Code Playgroud)
您可以使用pip-tools创建一个requirements.txt仅包含包的依赖项的文件:
$ pip-compile -o requirements.txt setup.py
Run Code Online (Sandbox Code Playgroud)
请注意,上述命令仅在您还没有文件时才有效requirements.txt。如果您碰巧已经有一个,请将其删除。
使用生成的文件,requirements.txt您可以运行 pip 来安装依赖项:
$ pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
其中requirements.txt将包含指示相关依赖项源自何处的注释。
如果您有一个extras_require可选依赖项的部分setup.py,如下所示:
$ pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
requirements.txt您可以使用以下方法创建包括可选依赖项的内容:
...
extras_require={
"development": [
"wheel",
"debugpy",
"pytest",
],
},
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16574 次 |
| 最近记录: |