diff --git a/pip/_vendor/pep517/in_process/__init__.py b/pip/_vendor/pep517/in_process/__init__.py index 281a356cfe26..77acbfc2670b 100644 --- a/pip/_vendor/pep517/in_process/__init__.py +++ b/pip/_vendor/pep517/in_process/__init__.py @@ -14,13 +14,21 @@ try: except AttributeError: # Python 3.8 compatibility def _in_proc_script_path(): - return resources.path(__package__, '_in_process.py') + if resources.is_resource(__package__, '_in_process.py'): + return resources.path(__package__, '_in_process.py') + return resources.path(__package__, '_in_process.pyc') else: def _in_proc_script_path(): + if resources.files(__package__).joinpath('_in_process.py').is_file(): + return resources.as_file( + resources.files(__package__).joinpath('_in_process.py')) return resources.as_file( - resources.files(__package__).joinpath('_in_process.py')) + resources.files(__package__).joinpath('_in_process.pyc')) except ImportError: # Python 3.6 compatibility @contextmanager def _in_proc_script_path(): - yield pjoin(dirname(abspath(__file__)), '_in_process.py') + _in_proc_script = pjoin(dirname(abspath(__file__)), '_in_process.py') + if not os.path.isfile(_in_proc_script): + _in_proc_script = pjoin(dirname(abspath(__file__)), '_in_process.pyc') + yield _in_proc_script