MCPcopy Create free account
hub / github.com/aaPanel/BaoTa / find_venv_python

Method find_venv_python

mod/project/python/pyenv_tool.py:876–905  ·  view source on GitHub ↗
(cls, path: str)

Source from the content-addressed store, hash-verified

874
875 @classmethod
876 def find_venv_python(cls, path: str) -> Optional[PythonEnvironment]:
877 p = Path(path).resolve()
878 while str(p) != "/":
879 if not p.exists() or not p.is_dir():
880 break
881 bin_path = "{}/bin/python".format(str(p))
882 if not os.path.exists(bin_path) or not os.access(bin_path, os.X_OK):
883 bin_path = "{}/bin/python3".format(str(p))
884 if not os.path.exists(bin_path) or not os.access(bin_path, os.X_OK):
885 p = p.parent
886 continue
887
888 data = cls.get_env_info(str(p))
889 if not data:
890 p = p.parent
891 continue
892
893 site_packages = cls.get_site_packages(bin_path)
894 if not site_packages:
895 p = p.parent
896 continue
897
898 pe = PythonEnvironment(bin_path, data[1], "venv")
899 pe.activate_sh = "source {}/bin/activate".format(str(p))
900 pe.system_path = data[0]
901 pe.venv_name = data[2]
902 pe.site_packages = site_packages
903 return pe
904
905 return None
906
907
908class SystemPythonDetector(_EnvironmentDetector):

Callers 1

add_python_envMethod · 0.80

Calls 6

PythonEnvironmentClass · 0.85
get_site_packagesMethod · 0.80
resolveMethod · 0.45
existsMethod · 0.45
formatMethod · 0.45
get_env_infoMethod · 0.45

Tested by

no test coverage detected