为什么pip重新安装install_requires中列出的标准软件包

时间:2014-04-04 20:45:42

标签: python pip standard-library setup.py install-requires

我需要使用pip install SomePackage.tar.gz安装python包。在此程序包的setup.py中,install_requires下列出的一些库已成为Python 2.7标准库(如argparse)的一部分。

问题在于,当我在Python 2.7上安装软件包时,pip没有意识到,例如,argparse已经包含在标准库中,并在site-packages下重新安装它。

有没有办法让pip下载并安装在install_requires下列出的软件包,只要它们不包含在标准库中?

请注意,更改setup.py不是一个选项,因为该软件包也可能安装在Python 2.6下。

1 个答案:

答案 0 :(得分:1)

您说更改setup.py不是一个选项,因为它可能在Python 2.6下使用。无论如何,改变它有条件:

import sys
from setuptools import setup

install_requires = [
    # ...general modules...
]

if sys.hexversion < 0x02070000:
    install_requires.append('argparse')

setup(
    # ...
    install_requires=install_requires,
)