python setup.py install
будет автоматически устанавливать пакеты, перечисленные в requires=[]
, с помощью easy_install
. Как мне заставить вместо него использовать pip
?
Могу ли я использовать `pip` вместо` easy_install` для `зависимости python setup.py install`?
Ответ 1
Да, вы можете. Вы можете установить пакет из 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 .
Это устанавливает пакет в редактируемый режим. Любые изменения, внесенные в код, будут немедленно применяться к системе. Это полезно, если вы являетесь разработчиком пакета и хотите протестировать изменения. Это также означает, что вы не можете удалить папку, не нарушая установку.
Ответ 2
Вы можете pip install
файл, возможно, с помощью python setup.py sdist
. Вы также можете pip install -e .
, который похож на python setup.py develop
.
Ответ 3
Если вы действительно используете 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']
)