From b15a99462708ba5e68500682e680665467520a44 Mon Sep 17 00:00:00 2001 From: "jiyeong.seok" Date: Wed, 16 Apr 2025 11:47:54 +0900 Subject: [PATCH] Fix to retry virtualenv for pypi Signed-off-by: jiyeong.seok --- .../package_manager/Pypi.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/fosslight_dependency/package_manager/Pypi.py b/src/fosslight_dependency/package_manager/Pypi.py index 60732d6a..4de61c44 100644 --- a/src/fosslight_dependency/package_manager/Pypi.py +++ b/src/fosslight_dependency/package_manager/Pypi.py @@ -136,6 +136,23 @@ def create_virtualenv(self): ret = False err_msg = e finally: + try: + if self.platform != const.WINDOWS: + ret = True + create_venv_cmd = f"virtualenv -p python3 {self.venv_tmp_dir}" + + cmd_list = [create_venv_cmd, activate_cmd, install_cmd, deactivate_cmd] + cmd = cmd_separator.join(cmd_list) + cmd_ret = subprocess.run(cmd, shell=True, stderr=subprocess.PIPE) + if cmd_ret.returncode != 0: + ret = False + err_msg = f"return code({cmd_ret.returncode})" + elif cmd_ret.stderr.decode('utf-8').rstrip().startswith('ERROR:'): + ret = False + err_msg = f"stderr msg({cmd_ret.stderr})" + except Exception as e: + ret = False + err_msg = e if ret: logger.info(f"It created the temporary virtualenv({venv_path}).") else: