Can I use `pip` instead of `easy_install` for `python setup.py install` dependency resolution? Can I use `pip` instead of `easy_install` for `python setup.py install` dependency resolution? python python

Can I use `pip` instead of `easy_install` for `python setup.py install` dependency resolution?


Yes you can. You can install a package from a tarball or a folder, on the web or your computer. For example:

Install from tarball on web

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

Install from local tarball

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

Install from local folder

tar -zxvf requests-2.3.0.tar.gzcd requests-2.3.0pip install .

You can delete the requests-2.3.0 folder.

Install from local folder (editable mode)

pip install -e .

This installs the package in editable mode. Any changes you make to the code will immediately apply across the system. This is useful if you are the package developer and want to test changes. It also means you can't delete the folder without breaking the install.


You can pip install a file perhaps by python setup.py sdist first. You can also pip install -e . which is like python setup.py develop.


If you are really set on using python setup.py install you could try something like this:

from setuptools import setup, find_packagesfrom setuptools.command.install import install as InstallCommandclass 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'])