我可以在`python setup.py install`依赖解析中用`pip`替代`easy_install`吗?

162 投票
3 回答
146297 浏览
提问于 2025-04-15 18:09

运行python setup.py install这个命令会自动安装在requires=[]里列出的包,使用的是easy_install工具。那么,我该怎么做才能让它用pip来安装呢?

3 个回答

7

如果你真的想用 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']
)
116

你可以先用 python setup.py sdist 命令来打包一个文件,然后再用 pip install 来安装它。还有一种方法是用 pip install -e .,这个命令的作用类似于 python setup.py develop,可以让你在开发的时候直接使用这个文件。

174

当然可以。你可以从一个压缩包(tarball)或者文件夹中安装一个软件包,无论这个文件是在网上还是在你的电脑上。比如说:

从网上的压缩包安装

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 .

这种方式会把软件包安装在 可编辑模式 下。你对代码所做的任何修改都会立即在系统中生效。如果你是这个软件包的开发者,想要测试一些改动,这种方式非常有用。不过,这也意味着你不能随便删除这个文件夹,否则安装就会出问题。

撰写回答