| Server IP : 123.56.80.60 / Your IP : 216.73.216.78 Web Server : Apache/2.4.54 (Win32) OpenSSL/1.1.1s PHP/7.4.33 mod_fcgid/2.3.10-dev System : Windows NT iZhx3sob14hnz7Z 10.0 build 14393 (Windows Server 2016) i586 User : SYSTEM ( 0) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/Program Files/python/Lib/site-packages/tox/interpreters/windows/ |
Upload File : |
from __future__ import unicode_literals
from threading import Lock
import tox
from ..common import base_discover
from ..py_spec import CURRENT
from ..via_path import check_with_path
@tox.hookimpl
def tox_get_python_executable(envconfig):
spec, path = base_discover(envconfig)
if path is not None:
return path
# second check if the py.exe has it (only for non path specs)
if spec.path is None:
py_exe = locate_via_pep514(spec)
if py_exe is not None:
return py_exe
# third check if the literal base python is on PATH
candidates = [envconfig.basepython]
# fourth check if the name is on PATH
if spec.name is not None and spec.name != envconfig.basepython:
candidates.append(spec.name)
# or check known locations
if spec.major is not None and spec.minor is not None:
if spec.name == "python":
# The standard names are in predictable places.
candidates.append(r"c:\python{}{}\python.exe".format(spec.major, spec.minor))
return check_with_path(candidates, spec)
_PY_AVAILABLE = []
_PY_LOCK = Lock()
def locate_via_pep514(spec):
with _PY_LOCK:
if not _PY_AVAILABLE:
from . import pep514
_PY_AVAILABLE.extend(pep514.discover_pythons())
_PY_AVAILABLE.append(CURRENT)
for cur_spec in _PY_AVAILABLE:
if cur_spec.satisfies(spec):
return cur_spec.path