我可以使用`pip`而不是`easy_install`来进行`python setup.py install`依赖解析吗?

时间:2010-01-18 15:40:17

标签: python easy-install pip

python setup.py install将使用requires=[]自动安装easy_install中列出的软件包。如何让它使用pip代替?

3 个答案:

答案 0 :(得分:111)

是的,你可以。您可以从Web或计算机上的tarball或文件夹安装软件包。例如:

从网上的tarball安装

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

从本地tarball安装

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 .

这会在editable mode中安装该软件包。您对代码所做的任何更改都将立即应用于整个系统。如果您是包开发人员并且想要测试更改,这将非常有用。这也意味着您无法在不中断安装的情况下删除文件夹。

答案 1 :(得分:104)

您可以先pip install python setup.py sdist文件pip install -e .。您还可以python setup.py develop {{1}}。

答案 2 :(得分:2)

如果你真的开始使用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']
)