Почему pip переустанавливает стандартные пакеты, перечисленные в install_requires

Есть пакет Python, который мне нужно установить с помощью pip install SomePackage.tar.gz, в setup.py этого пакета, несколько библиотек, которые перечислены в install_requires стали частью стандартной библиотеки Python 2.7 (например, argparse).

Проблема в том, что когда я устанавливаю пакет на Python 2.7, pip не осознает, что, например, argparse уже включен в стандартную библиотеку и переустанавливает ее в site-packages.

Есть ли способ, чтобы pip загружал и устанавливал пакеты, перечисленные в install_requires, только если они не включены в стандартную библиотеку?

Обратите внимание, что изменение setup.py это не вариант, так как пакет может быть установлен и под Python 2.6.

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,
)
Другие вопросы по тегам