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

joe*_*ker 133 python pip easy-install

python setup.py install将自动安装requires=[]使用中列出的包easy_install.我怎样才能使用它pip呢?

Col*_*nic 129

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

从webball上的tarball安装

pip install https://pypi.python.org/packages/source/r/requests/requests-2.3.0.tar.gz
Run Code Online (Sandbox Code Playgroud)

从本地tarball安装

wget https://pypi.python.org/packages/source/r/requests/requests-2.3.0.tar.gz
pip install requests-2.3.0.tar.gz
Run Code Online (Sandbox Code Playgroud)

从本地文件夹安装

tar -zxvf requests-2.3.0.tar.gz
cd requests-2.3.0
pip install .
Run Code Online (Sandbox Code Playgroud)

您可以删除该requests-2.3.0文件夹.

从本地文件夹安装(可编辑模式)

pip install -e .
Run Code Online (Sandbox Code Playgroud)

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

  • 如果您习惯使用"python setup.py install"来安装软件包,那么很自然地会问如何使用"python setup.py install"来解决pip的依赖关系,但这是错误的问题.解决方案是使用pip安装软件包并停止使用"setup.py install". (10认同)
  • @joeforker的问题是你可能会被迫使用easy_install,如果你做的事情就像`python setup.py test` (8认同)

Geo*_*edy 106

你可以pip install先找一个文件python setup.py sdist.你也pip install -e .可以这样python setup.py develop.

  • 对于任何尝试此操作的人来说,只需要提醒:注意`pip install -e`将目录作为参数,而不是`setup.py`文件本身.起初我没有注意到`pip install -e .`中的那段时间,这引起了我一些困惑:) (14认同)
  • 谢谢,使用`pip install -e'。我可以安装,但是使用pip,如何从可编辑模式下卸载? (3认同)
  • 使用常规的“ pip卸载<程序包名称>”来卸载可编辑的安装。 (2认同)

Tom*_*Tom 5

如果你真的开始使用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']
)
Run Code Online (Sandbox Code Playgroud)