Могу ли я использовать `pip` вместо` easy_install` для разрешения зависимостей `python setup.py install`? - PullRequest
123 голосов
/ 18 января 2010

python setup.py install автоматически установит пакеты, перечисленные в requires=[], используя easy_install. Как заставить его использовать pip вместо?

Ответы [ 3 ]

116 голосов
/ 02 июня 2014

Да, вы можете. Вы можете установить пакет из архива или папки, в Интернете или на своем компьютере. Например:

Установка из архива в Интернете

pip install https://pypi.python.org/packages/source/r/requests/requests-2.3.0.tar.gz

Установка из локального архива

wget https://pypi.python.org/packages/source/r/requests/requests-2.3.0.tar.gz
pip install requests-2.3.0.tar.gz

Установка из локальной папки

tar -zxvf requests-2.3.0.tar.gz
cd requests-2.3.0
pip install .

Вы можете удалить папку requests-2.3.0.

Установка из локальной папки (редактируемый режим)

pip install -e .

Устанавливает пакет в редактируемом режиме . Любые изменения, внесенные в код, будут немедленно применены ко всей системе. Это полезно, если вы являетесь разработчиком пакета и хотите проверить изменения. Это также означает, что вы не можете удалить папку, не прерывая установку.

104 голосов
/ 19 января 2010

Вы можете pip install файл, возможно, сначала python setup.py sdist. Вы также можете pip install -e ., как python setup.py develop.

2 голосов
/ 23 марта 2017

Если вы действительно используете python setup.py install, вы можете попробовать что-то вроде этого:

from setuptools import setup, find_packages
from setuptools.command.install import install as InstallCommand


class Install(InstallCommand):
    """ Customized setuptools install command which uses pip. """

    def run(self, *args, **kwargs):
        import pip
        pip.main(['install', '.'])
        InstallCommand.run(self, *args, **kwargs)


setup(
    name='your_project',
    version='0.0.1a',
    cmdclass={
        'install': Install,
    },
    packages=find_packages(),
    install_requires=['simplejson']
)
...