Further tweak how to find pip in virtualenv on centos/redhat/fedora

In a virtualenv, pip is called just pip.  This fixes the pip module to
search for the virtualenv pip first before trying the pip-python and
python-pip variants.  Without this, pip module would not install to the
virtualenv when that parameter is provided.
reviewable/pr18780/r1
Stephen Fromm 12 years ago
parent 8070dedecc
commit 4cdd93a6e4

18
pip

@ -153,10 +153,20 @@ def main():
out += out_venv out += out_venv
err += err_venv err += err_venv
pip = module.get_bin_path('python-pip', False, ['%s/bin' % env]) # On Debian and Ubuntu, pip is pip.
if not pip: # On Fedora18 and up, pip is python-pip.
pip = module.get_bin_path('pip-python', False, ['%s/bin' % env]) # On Fedora17 and below, CentOS and RedHat 6 and 5, pip is pip-python.
# On Fedora, CentOS, and RedHat, the exception is in the virtualenv.
# There, pip is just pip.
# Try pip with the virtualenv directory first.
pip = module.get_bin_path('pip', False, ['%s/bin' % env])
for p in ['python-pip', 'pip-python']:
if not pip:
pip = module.get_bin_path(p, False, ['%s/bin' % env])
# pip should have been found by now. The final call to get_bin_path
# will trigger fail_json.
if not pip: if not pip:
pip = module.get_bin_path('pip', True, ['%s/bin' % env]) pip = module.get_bin_path('pip', True, ['%s/bin' % env])

Loading…
Cancel
Save