util: add backport for shutil.which()
This commit is contained in:
@@ -4,7 +4,6 @@ import contextlib
|
|||||||
import functools
|
import functools
|
||||||
import io
|
import io
|
||||||
import logging
|
import logging
|
||||||
import shutil
|
|
||||||
import struct
|
import struct
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
@@ -219,7 +218,13 @@ def memoize(func):
|
|||||||
@memoize
|
@memoize
|
||||||
def which(cmd):
|
def which(cmd):
|
||||||
"""Return full path to specified command, or raise OSError if missing."""
|
"""Return full path to specified command, or raise OSError if missing."""
|
||||||
full_path = shutil.which(cmd)
|
try:
|
||||||
|
# For Python 3
|
||||||
|
from shutil import which as _which
|
||||||
|
except ImportError:
|
||||||
|
# For Python 2
|
||||||
|
from backports.shutil_which import which as _which # pylint: disable=relative-import
|
||||||
|
full_path = _which(cmd)
|
||||||
if full_path is None:
|
if full_path is None:
|
||||||
raise OSError('Cannot find {!r} in $PATH'.format(cmd))
|
raise OSError('Cannot find {!r} in $PATH'.format(cmd))
|
||||||
log.debug('which %r => %r', cmd, full_path)
|
log.debug('which %r => %r', cmd, full_path)
|
||||||
|
|||||||
Reference in New Issue
Block a user