pipupgrade
pipupgrade copied to clipboard
ValueError: pip executable not found
Thank you for the awesome tool!
What's the bug all about?
Running pipupgrade
raises ValueError: pip executable not found.
What command led to this issue?
Please type the exact command that led to this issue.
$ pipupgrade
# also tried
$ python -m pipupgrade
# and
$ pipupgrade --pip-path /usr/local/opt/python/libexec/bin/pip
# (the value of `which pip`)
Logs
Traceback (most recent call last):
File "/usr/local/bin/pipupgrade", line 5, in <module>
from pipupgrade.__main__ import main
File "/usr/local/lib/python3.7/site-packages/pipupgrade/__init__.py", line 7, in <module>
from pipupgrade.__main__ import main
File "/usr/local/lib/python3.7/site-packages/pipupgrade/__main__.py", line 5, in <module>
from pipupgrade.commands import command as main
File "/usr/local/lib/python3.7/site-packages/pipupgrade/commands/__init__.py", line 12, in <module>
from pipupgrade.commands.helper import (
File "/usr/local/lib/python3.7/site-packages/pipupgrade/commands/helper.py", line 10, in <module>
from pipupgrade.model import Registry
File "/usr/local/lib/python3.7/site-packages/pipupgrade/model/__init__.py", line 3, in <module>
from pipupgrade.model.package import Package
File "/usr/local/lib/python3.7/site-packages/pipupgrade/model/package.py", line 12, in <module>
from pipupgrade import _pip, semver, request as req, db, log
File "/usr/local/lib/python3.7/site-packages/pipupgrade/_pip.py", line 54, in <module>
_PIP_EXECUTABLES = _get_pip_executable(multiple = True)
File "/usr/local/lib/python3.7/site-packages/pipupgrade/_pip.py", line 49, in _get_pip_executable
raise ValueError("pip executable not found.")
ValueError: pip executable not found.
I'm on MacOS, with python installed through brew. I don't have any oddities in my config.
Hi @max-sixty - could you use the --verbose
flag and help me display the output?
Hi @achillesrasquinha; unfortunately it's the same output:
$ pipupgrade --verbose Tue Mar 31 13:18:00 2020
Traceback (most recent call last):
File "/usr/local/bin/pipupgrade", line 5, in <module>
from pipupgrade.__main__ import main
File "/usr/local/lib/python3.7/site-packages/pipupgrade/__init__.py", line 7, in <module>
from pipupgrade.__main__ import main
File "/usr/local/lib/python3.7/site-packages/pipupgrade/__main__.py", line 5, in <module>
from pipupgrade.commands import command as main
File "/usr/local/lib/python3.7/site-packages/pipupgrade/commands/__init__.py", line 12, in <module>
from pipupgrade.commands.helper import (
File "/usr/local/lib/python3.7/site-packages/pipupgrade/commands/helper.py", line 10, in <module>
from pipupgrade.model import Registry
File "/usr/local/lib/python3.7/site-packages/pipupgrade/model/__init__.py", line 3, in <module>
from pipupgrade.model.package import Package
File "/usr/local/lib/python3.7/site-packages/pipupgrade/model/package.py", line 12, in <module>
from pipupgrade import _pip, semver, request as req, db, log
File "/usr/local/lib/python3.7/site-packages/pipupgrade/_pip.py", line 54, in <module>
_PIP_EXECUTABLES = _get_pip_executable(multiple = True)
File "/usr/local/lib/python3.7/site-packages/pipupgrade/_pip.py", line 49, in _get_pip_executable
raise ValueError("pip executable not found.")
ValueError: pip executable not found.
FYI I just got a new Mac, installed python3 with brew and have the same error. So I think it's more likely to be a general issue with pipupgrade & python-on-brew than specific to my system.
Could it be that it should be pip3
?
pip
resolves:
$ pipupgrade
Traceback (most recent call last):
File "/usr/local/bin/pipupgrade", line 5, in <module>
from pipupgrade.__main__ import main
File "/usr/local/lib/python3.7/site-packages/pipupgrade/__init__.py", line 7, in <module>
from pipupgrade.__main__ import main
File "/usr/local/lib/python3.7/site-packages/pipupgrade/__main__.py", line 5, in <module>
from pipupgrade.commands import command as main
File "/usr/local/lib/python3.7/site-packages/pipupgrade/commands/__init__.py", line 12, in <module>
from pipupgrade.commands.helper import (
File "/usr/local/lib/python3.7/site-packages/pipupgrade/commands/helper.py", line 10, in <module>
from pipupgrade.model import Registry
File "/usr/local/lib/python3.7/site-packages/pipupgrade/model/__init__.py", line 3, in <module>
from pipupgrade.model.package import Package
File "/usr/local/lib/python3.7/site-packages/pipupgrade/model/package.py", line 12, in <module>
from pipupgrade import _pip, semver, request as req, db, log
File "/usr/local/lib/python3.7/site-packages/pipupgrade/_pip.py", line 54, in <module>
_PIP_EXECUTABLES = _get_pip_executable(multiple = True)
File "/usr/local/lib/python3.7/site-packages/pipupgrade/_pip.py", line 49, in _get_pip_executable
raise ValueError("pip executable not found.")
ValueError: pip executable not found.
$ which pip
/usr/local/opt/python/libexec/bin/pip
The same here (on Mac).
Hi, I've tried to fix this with pipupgrade 1.7.3
, can you please confirm?
Unfortunately no luck:
pipupgrade . Mon Jul 6 19:01:40 2020
Traceback (most recent call last):
File "/usr/local/bin/pipupgrade", line 5, in <module>
from pipupgrade.__main__ import main
File "/usr/local/lib/python3.7/site-packages/pipupgrade/__init__.py", line 7, in <module>
from pipupgrade.__main__ import main
File "/usr/local/lib/python3.7/site-packages/pipupgrade/__main__.py", line 5, in <module>
from pipupgrade.commands import command as main
File "/usr/local/lib/python3.7/site-packages/pipupgrade/commands/__init__.py", line 12, in <module>
from pipupgrade.commands.helper import (
File "/usr/local/lib/python3.7/site-packages/pipupgrade/commands/helper.py", line 10, in <module>
from pipupgrade.model import Registry
File "/usr/local/lib/python3.7/site-packages/pipupgrade/model/__init__.py", line 3, in <module>
from pipupgrade.model.package import Package
File "/usr/local/lib/python3.7/site-packages/pipupgrade/model/package.py", line 12, in <module>
from pipupgrade import _pip, semver, request as req, db, log
File "/usr/local/lib/python3.7/site-packages/pipupgrade/_pip.py", line 54, in <module>
_PIP_EXECUTABLES = _get_pip_executable(multiple = True)
File "/usr/local/lib/python3.7/site-packages/pipupgrade/_pip.py", line 49, in _get_pip_executable
raise ValueError("pip executable not found.")
ValueError: pip executable not found.
pipupgrade --version 868ms  Mon Jul 6 19:01:44 2020
Traceback (most recent call last):
File "/usr/local/bin/pipupgrade", line 5, in <module>
from pipupgrade.__main__ import main
File "/usr/local/lib/python3.7/site-packages/pipupgrade/__init__.py", line 7, in <module>
from pipupgrade.__main__ import main
File "/usr/local/lib/python3.7/site-packages/pipupgrade/__main__.py", line 5, in <module>
from pipupgrade.commands import command as main
File "/usr/local/lib/python3.7/site-packages/pipupgrade/commands/__init__.py", line 12, in <module>
from pipupgrade.commands.helper import (
File "/usr/local/lib/python3.7/site-packages/pipupgrade/commands/helper.py", line 10, in <module>
from pipupgrade.model import Registry
File "/usr/local/lib/python3.7/site-packages/pipupgrade/model/__init__.py", line 3, in <module>
from pipupgrade.model.package import Package
File "/usr/local/lib/python3.7/site-packages/pipupgrade/model/package.py", line 12, in <module>
from pipupgrade import _pip, semver, request as req, db, log
File "/usr/local/lib/python3.7/site-packages/pipupgrade/_pip.py", line 54, in <module>
_PIP_EXECUTABLES = _get_pip_executable(multiple = True)
File "/usr/local/lib/python3.7/site-packages/pipupgrade/_pip.py", line 49, in _get_pip_executable
raise ValueError("pip executable not found.")
ValueError: pip executable not found.
pip list | rg pipup 490ms  Mon Jul 6 19:01:52 2020
pipupgrade 1.7.3
I am having the same issue, but I have a couple versions of python installed and PIP is only installed on python3.8.
It seems this error is being raised from _pip.py file when it uses which(pip_)
to check where it is.
I guess this could be skipped if the value of --pip-path
was passed to which()
, since there is an argument for path within find_executable()
at system.py. What I managed to do was simply create a symbolic link from my pip3.8 as pip to /usr/local/bin
and it worked fine for now.
Since it knows where pip is not, it updated pip on python3.8 fine and it has been working so far.
Same issue here on MacOS as well:
$ pip3 -V
pip 20.1.1 from /usr/local/lib/python3.8/site-packages/pip (python 3.8)
$ which pip3
/usr/local/bin/pip3
$ ln -sf /usr/local/bin/pip3.8 /usr/local/bin/pip
$ pip -V
pip 20.1.1 from /usr/local/lib/python3.8/site-packages/pip (python 3.8)
$ which pip
/usr/local/bin/pip
$ pipupgrade
Traceback (most recent call last):
File "/usr/local/bin/pipupgrade", line 5, in <module>
from pipupgrade.__main__ import main
File "/usr/local/lib/python3.8/site-packages/pipupgrade/__init__.py", line 7, in <module>
from pipupgrade.__main__ import main
File "/usr/local/lib/python3.8/site-packages/pipupgrade/__main__.py", line 5, in <module>
from pipupgrade.commands import command as main
File "/usr/local/lib/python3.8/site-packages/pipupgrade/commands/__init__.py", line 12, in <module>
from pipupgrade.commands.helper import (
File "/usr/local/lib/python3.8/site-packages/pipupgrade/commands/helper.py", line 10, in <module>
from pipupgrade.model import Registry
File "/usr/local/lib/python3.8/site-packages/pipupgrade/model/__init__.py", line 3, in <module>
from pipupgrade.model.package import Package
File "/usr/local/lib/python3.8/site-packages/pipupgrade/model/package.py", line 12, in <module>
from pipupgrade import _pip, semver, request as req, db, log
File "/usr/local/lib/python3.8/site-packages/pipupgrade/_pip.py", line 54, in <module>
_PIP_EXECUTABLES = _get_pip_executable(multiple = True)
File "/usr/local/lib/python3.8/site-packages/pipupgrade/_pip.py", line 49, in _get_pip_executable
raise ValueError("pip executable not found.")
ValueError: pip executable not found.
$ pipupgrade --verbose --pip-path /usr/local/bin/pip
Traceback (most recent call last):
File "/usr/local/bin/pipupgrade", line 5, in <module>
from pipupgrade.__main__ import main
File "/usr/local/lib/python3.8/site-packages/pipupgrade/__init__.py", line 7, in <module>
from pipupgrade.__main__ import main
File "/usr/local/lib/python3.8/site-packages/pipupgrade/__main__.py", line 5, in <module>
from pipupgrade.commands import command as main
File "/usr/local/lib/python3.8/site-packages/pipupgrade/commands/__init__.py", line 12, in <module>
from pipupgrade.commands.helper import (
File "/usr/local/lib/python3.8/site-packages/pipupgrade/commands/helper.py", line 10, in <module>
from pipupgrade.model import Registry
File "/usr/local/lib/python3.8/site-packages/pipupgrade/model/__init__.py", line 3, in <module>
from pipupgrade.model.package import Package
File "/usr/local/lib/python3.8/site-packages/pipupgrade/model/package.py", line 12, in <module>
from pipupgrade import _pip, semver, request as req, db, log
File "/usr/local/lib/python3.8/site-packages/pipupgrade/_pip.py", line 54, in <module>
_PIP_EXECUTABLES = _get_pip_executable(multiple = True)
File "/usr/local/lib/python3.8/site-packages/pipupgrade/_pip.py", line 49, in _get_pip_executable
raise ValueError("pip executable not found.")
ValueError: pip executable not found.
$ pipupgrade --verbose --pip-path /usr/local/bin/pip3
Traceback (most recent call last):
File "/usr/local/bin/pipupgrade", line 5, in <module>
from pipupgrade.__main__ import main
File "/usr/local/lib/python3.8/site-packages/pipupgrade/__init__.py", line 7, in <module>
from pipupgrade.__main__ import main
File "/usr/local/lib/python3.8/site-packages/pipupgrade/__main__.py", line 5, in <module>
from pipupgrade.commands import command as main
File "/usr/local/lib/python3.8/site-packages/pipupgrade/commands/__init__.py", line 12, in <module>
from pipupgrade.commands.helper import (
File "/usr/local/lib/python3.8/site-packages/pipupgrade/commands/helper.py", line 10, in <module>
from pipupgrade.model import Registry
File "/usr/local/lib/python3.8/site-packages/pipupgrade/model/__init__.py", line 3, in <module>
from pipupgrade.model.package import Package
File "/usr/local/lib/python3.8/site-packages/pipupgrade/model/package.py", line 12, in <module>
from pipupgrade import _pip, semver, request as req, db, log
File "/usr/local/lib/python3.8/site-packages/pipupgrade/_pip.py", line 54, in <module>
_PIP_EXECUTABLES = _get_pip_executable(multiple = True)
File "/usr/local/lib/python3.8/site-packages/pipupgrade/_pip.py", line 49, in _get_pip_executable
raise ValueError("pip executable not found.")
ValueError: pip executable not found.
It started working after I ran the above and then this:
pip list --outdated | cut -d ' ' -f1 | xargs -n1 pip install -U
I'm having the same problem now on a mac with Python 3.8.6. The pip (alias for pip3 in my case) command works just fine but for any pipupgrade command I get the following error:
Traceback (most recent call last):
File "/usr/local/bin/pipupgrade", line 5, in <module>
from pipupgrade.__main__ import main
File "/usr/local/lib/python3.8/site-packages/pipupgrade/__init__.py", line 7, in <module>
from pipupgrade.__main__ import main
File "/usr/local/lib/python3.8/site-packages/pipupgrade/__main__.py", line 5, in <module>
from pipupgrade.commands import command as main
File "/usr/local/lib/python3.8/site-packages/pipupgrade/commands/__init__.py", line 12, in <module>
from pipupgrade.commands.helper import (
File "/usr/local/lib/python3.8/site-packages/pipupgrade/commands/helper.py", line 10, in <module>
from pipupgrade.model import Registry
File "/usr/local/lib/python3.8/site-packages/pipupgrade/model/__init__.py", line 3, in <module>
from pipupgrade.model.package import Package
File "/usr/local/lib/python3.8/site-packages/pipupgrade/model/package.py", line 12, in <module>
from pipupgrade import _pip, semver, request as req, db, log
File "/usr/local/lib/python3.8/site-packages/pipupgrade/_pip.py", line 54, in <module>
_PIP_EXECUTABLES = _get_pip_executable(multiple = True)
File "/usr/local/lib/python3.8/site-packages/pipupgrade/_pip.py", line 49, in _get_pip_executable
raise ValueError("pip executable not found.")
ValueError: pip executable not found.
Same here in MacOS Big Sur, problem is in:
if exec_ not in execs and not osp.islink(exec_):
execs.append(exec_)
Many of us using brew have symlinked pips in our paths, so nothing is added to execs
.
What about using this instead:
exec_ = osp.realpath(exec_)
if exec_ not in execs:
execs.append(exec_)
?
Hello,
"osp.realpath(exec_)" wont work in my case (gentoo GNU/Linux) as it will loose the "pip" command name required to act in python-exec on behalf of "pip...":
pc ~ # pipupgrade/pip.py line 47: if exec not in execs and not osp.islink(exec_): pc ~ # ls -l /usr/bin/pip* lrwxrwxrwx 1 root root 31 22. Sep 01:45 /usr/bin/pip -> ../lib/python-exec/python-exec2 lrwxrwxrwx 1 root root 31 22. Sep 01:45 /usr/bin/pip3 -> ../lib/python-exec/python-exec2 lrwxrwxrwx 1 root root 31 22. Sep 01:45 /usr/bin/pip3.7 -> ../lib/python-exec/python-exec2 lrwxrwxrwx 1 root root 31 22. Sep 01:45 /usr/bin/pip3.8 -> ../lib/python-exec/python-exec2 pc ~ #
How about just stripping "and not osp.islink(exec_)"?
Facing this same issue on the latest M1 mac mini and M1 Pro. Any help is appreciated :) thank you
@achillesrasquinha Do you need any verbose? let me attached it
Traceback (most recent call last):
File "/opt/homebrew/bin/pipupgrade", line 33, in <module>
sys.exit(load_entry_point('pipupgrade==1.10.1', 'console_scripts', 'pipupgrade')())
File "/opt/homebrew/bin/pipupgrade", line 25, in importlib_load_entry_point
return next(matches).load()
File "/opt/homebrew/Cellar/[email protected]/3.9.9/Frameworks/Python.framework/Versions/3.9/lib/python3.9/importlib/metadata.py", line 77, in load
module = import_module(match.group('module'))
File "/opt/homebrew/Cellar/[email protected]/3.9.9/Frameworks/Python.framework/Versions/3.9/lib/python3.9/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 850, in exec_module
File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
File "/opt/homebrew/lib/python3.9/site-packages/pipupgrade/__init__.py", line 16, in <module>
from pipupgrade.__main__ import main
File "/opt/homebrew/lib/python3.9/site-packages/pipupgrade/__main__.py", line 2, in <module>
from pipupgrade.commands import command as main
File "/opt/homebrew/lib/python3.9/site-packages/pipupgrade/commands/__init__.py", line 11, in <module>
from pipupgrade.commands.helper import (
File "/opt/homebrew/lib/python3.9/site-packages/pipupgrade/commands/helper.py", line 10, in <module>
from pipupgrade.model import Registry
File "/opt/homebrew/lib/python3.9/site-packages/pipupgrade/model/__init__.py", line 3, in <module>
from pipupgrade.model.package import Package
File "/opt/homebrew/lib/python3.9/site-packages/pipupgrade/model/package.py", line 11, in <module>
from pipupgrade import _pip, semver
File "/opt/homebrew/lib/python3.9/site-packages/pipupgrade/_pip.py", line 55, in <module>
_PIP_EXECUTABLES = _get_pip_executable(multiple = True)
File "/opt/homebrew/lib/python3.9/site-packages/pipupgrade/_pip.py", line 50, in _get_pip_executable
raise ValueError("pip executable not found.")
ValueError: pip executable not found.
verbose output
File "/opt/homebrew/bin/pipupgrade", line 5, in <module>
from pipupgrade.__main__ import main
File "/opt/homebrew/lib/python3.9/site-packages/pipupgrade/__init__.py", line 16, in <module>
from pipupgrade.__main__ import main
File "/opt/homebrew/lib/python3.9/site-packages/pipupgrade/__main__.py", line 2, in <module>
from pipupgrade.commands import command as main
File "/opt/homebrew/lib/python3.9/site-packages/pipupgrade/commands/__init__.py", line 11, in <module>
from pipupgrade.commands.helper import (
File "/opt/homebrew/lib/python3.9/site-packages/pipupgrade/commands/helper.py", line 10, in <module>
from pipupgrade.model import Registry
File "/opt/homebrew/lib/python3.9/site-packages/pipupgrade/model/__init__.py", line 3, in <module>
from pipupgrade.model.package import Package
File "/opt/homebrew/lib/python3.9/site-packages/pipupgrade/model/package.py", line 11, in <module>
from pipupgrade import _pip, semver
File "/opt/homebrew/lib/python3.9/site-packages/pipupgrade/_pip.py", line 55, in <module>
_PIP_EXECUTABLES = _get_pip_executable(multiple = True)
File "/opt/homebrew/lib/python3.9/site-packages/pipupgrade/_pip.py", line 50, in _get_pip_executable
raise ValueError("pip executable not found.")
ValueError: pip executable not found.
Same here in MacOS Big Sur, problem is in:
if exec_ not in execs and not osp.islink(exec_): execs.append(exec_)
Many of us using brew have symlinked pips in our paths, so nothing is added to
execs
.What about using this instead:
exec_ = osp.realpath(exec_) if exec_ not in execs: execs.append(exec_)
?
This fixes it.
def _get_pip_executable(multiple = False):
pips = ("pip", "pip3", "pip2")
execs = [ ]
for pip_ in pips:
exec_ = which(pip_)
if exec_:
if not multiple:
return exec_
else:
exec_ = osp.realpath(exec_)
if exec_ not in execs:
execs.append(exec_)