dsu*_*lly 38 python pip setuptools distribute
我有一个带有setup.py的包"A"和一个extras_requires行,如:
extras_require = {
'ssh': ['paramiko'],
},
Run Code Online (Sandbox Code Playgroud)
一个依赖于util的包"B":
install_requires = ['A[ssh]']
Run Code Online (Sandbox Code Playgroud)
如果我运行python setup.py install在setuptools.command.easy_install引擎盖下使用的软件包B,extras_requires则会正确解析,并安装了paramiko.
但是,如果我运行pip /path/to/B或pip hxxp://.../b-version.tar.gz安装包A,但paramiko不是.
因为pip"从源代码安装",我不太清楚为什么这不起作用.它应该调用B的setup.py,然后解析和安装B和A的依赖关系.
这可能与pip有关吗?
aar*_*fay 36
我们使用setup.py和pip管理包的开发依赖关系,尽管你需要更新版本pip(我们目前使用的是1.4.1).
#!/usr/bin/env python
from setuptools import setup
from myproject import __version__
required = [
'gevent',
'flask',
...
]
extras = {
'develop': [
'Fabric',
'nose',
]
}
setup(
name="my-project",
version=__version__,
description="My awsome project.",
packages=[
"my_project"
],
include_package_data=True,
zip_safe=False,
scripts=[
'runmyproject',
],
install_requires=required,
extras_require=extras,
)
Run Code Online (Sandbox Code Playgroud)
要安装包:
$ pip install -e . # only installs "required"
Run Code Online (Sandbox Code Playgroud)
发展:
$ pip install -e .[develop] # installs develop dependencies
Run Code Online (Sandbox Code Playgroud)
Try*_*yPy 17
这是自2012年2月发布的pip 1.1(在提出此问题后一年)发布的.
can*_*his 16
@aaronfay 的答案是完全正确的,但最好指出,如果您使用的zsh是 install 命令,则pip install -e .[dev]需要将其替换为pip install -e ".[dev]".
| 归档时间: |
|
| 查看次数: |
15778 次 |
| 最近记录: |