代码之家  ›  专栏  ›  技术社区  ›  joeforker

我可以使用“pip”而不是“easy-install”来解决“python setup.py install”的依赖关系吗?

  •  117
  • joeforker  · 技术社区  · 15 年前

    python setup.py install 将自动安装中列出的包 requires=[] 使用 easy_install . 我怎么用它 pip 相反?

    3 回复  |  直到 8 年前
        1
  •  106
  •   Elijah Sarver    8 年前

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

    从网络上的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 . 对代码所做的任何更改都将立即应用于整个系统。如果您是包开发人员,并且想要测试更改,那么这很有用。这也意味着在不破坏安装的情况下无法删除文件夹。

        2
  •  102
  •   Geoff Reedy    15 年前

    你可以 pip install 一份文件 python setup.py sdist 第一。你也可以 pip install -e . 这就像 python setup.py develop .

        3
  •  2
  •   TomDotTom    8 年前

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