mirror of
https://github.com/daylinmorgan/viv.git
synced 2024-12-21 10:20:43 -06:00
fix: inside pdm venv pip is not a python module
This commit is contained in:
parent
bcad0e5696
commit
6ab83242e2
1 changed files with 22 additions and 4 deletions
|
@ -3862,6 +3862,7 @@ class Cli:
|
|||
|
||||
self._validate_args(args)
|
||||
func = args.__dict__.pop("func")
|
||||
_pip_check()
|
||||
func(
|
||||
**vars(args),
|
||||
)
|
||||
|
@ -3873,9 +3874,27 @@ def _pip_check():
|
|||
err_quit("viv requires pip to be installed")
|
||||
|
||||
# importing viv may have side effects I'm not aware of...
|
||||
if Version((pip_version := __import__("pip").__version__)) not in SpecifierSet(
|
||||
pip_version_requirement
|
||||
):
|
||||
try:
|
||||
pip_version = __import__("pip").__version__
|
||||
except ModuleNotFoundError:
|
||||
cmd = ["pip", "--version"]
|
||||
p = subprocess.run(
|
||||
cmd,
|
||||
text=True,
|
||||
stderr=subprocess.STDOUT,
|
||||
stdout=subprocess.PIPE,
|
||||
)
|
||||
|
||||
if p.returncode != 0:
|
||||
a.subprocess(cmd, p.stdout)
|
||||
err_quit("viv failed to get version from pip, see above")
|
||||
if not p.stdout.startswith("pip"):
|
||||
a.subprocess(cmd, p.stdout)
|
||||
err_quit("unexpected output from pip, see above")
|
||||
|
||||
pip_version = p.stdout.split()[1]
|
||||
|
||||
if Version(pip_version) not in SpecifierSet(pip_version_requirement):
|
||||
err_quit(
|
||||
f"viv requires pip version {pip_version_requirement} but got {pip_version}"
|
||||
)
|
||||
|
@ -3892,7 +3911,6 @@ def _no_traceback_excepthook(
|
|||
|
||||
def main() -> None:
|
||||
try:
|
||||
_pip_check()
|
||||
viv = Viv()
|
||||
Cli(viv).run()
|
||||
except KeyboardInterrupt:
|
||||
|
|
Loading…
Reference in a new issue