web-dev-qa-db-fra.com

Puis-je utiliser `pip` au lieu de` easy_install` pour la résolution de dépendances `python setup.py install`?

python setup.py install installera automatiquement les packages listés dans requires=[] en utilisant easy_install. Comment puis-je le faire pour qu'il utilise pip à la place?

126
joeforker

Oui, vous pouvez. Vous pouvez installer un paquet à partir d'une archive ou d'un dossier, sur le Web ou sur votre ordinateur. Par exemple:

Installer depuis tarball sur le web

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

Installer depuis l'archive locale

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

Installer à partir du dossier local

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

Vous pouvez supprimer le dossier requests-2.3.0.

Installer à partir du dossier local (mode éditable)

pip install -e .

Cela installe le paquet en mode éditable . Toute modification apportée au code s’appliquera immédiatement dans le système. Ceci est utile si vous êtes le développeur du package et souhaitez tester les modifications. Cela signifie également que vous ne pouvez pas supprimer le dossier sans interrompre l’installation.

121
Colonel Panic

Vous pouvez pip install un fichier peut-être par python setup.py sdist première. Vous pouvez aussi pip install -e . qui est comme python setup.py develop.

105
Geoff Reedy

Si vous êtes vraiment prêt à utiliser python setup.py install vous pouvez essayer quelque chose comme ceci:

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']
)
3
TomDotTom