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

python setup.py install will automatically install packages listed in requires=[] using easy_install. How do I get it to use pip instead?

123215 次浏览

你可以 pip install一个文件也许由 python setup.py sdist第一。你也可以像 python setup.py developpip install -e .

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

从 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 .

这将在 可编辑模式中安装包。对代码所做的任何更改都将立即应用于整个系统。如果您是软件包开发人员并且希望测试更改,那么这非常有用。这也意味着你不能删除文件夹而不中断安装。

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