Spaces:
Running
on
Zero
Running
on
Zero
| import os | |
| import subprocess | |
| import sys | |
| # pip ์ ๋ฐ์ดํธ | |
| def upgrade_pip(): | |
| """pip๋ฅผ ์ต์ ๋ฒ์ ์ผ๋ก ์ ๊ทธ๋ ์ด๋""" | |
| print("Upgrading pip...") | |
| subprocess.run([sys.executable, "-m", "pip", "install", "--upgrade", "pip"], check=True) | |
| def set_pythonpath(): | |
| """PYTHONPATH ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ (stf-tools์ ์ค์น ๊ฒฝ๋ก๋ฅผ ๊ธฐ๋ฐ์ผ๋ก)""" | |
| # pip show stf-tools ๋ช ๋ น์ด ์คํ | |
| try: | |
| result = subprocess.run(['pip', 'show', 'stf-alternative'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True) | |
| if result.returncode != 0: | |
| print("stf-tools ํจํค์ง๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.") | |
| return | |
| # ์ถ๋ ฅ์์ Location ์ฐพ๊ธฐ | |
| location_line = next((line for line in result.stdout.splitlines() if line.startswith("Location:")), None) | |
| if location_line: | |
| # Location์์ ๊ฒฝ๋ก ์ถ์ถ | |
| location_path = location_line.split("Location: ")[1].strip() | |
| print('location_path===',location_path) | |
| else: | |
| print("Location ์ ๋ณด๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.") | |
| return | |
| except Exception as e: | |
| print(f"ํจํค์ง ๊ฒฝ๋ก๋ฅผ ๊ฐ์ ธ์ค๋ ์ค ์๋ฌ๊ฐ ๋ฐ์ํ์ต๋๋ค: {e}") | |
| return | |
| # ํ์ฌ PYTHONPATH ํ์ธ | |
| current_pythonpath = os.environ.get("PYTHONPATH", "") | |
| # ์๋ก ์ถ๊ฐํ PYTHONPATH ๊ฒฝ๋ก (stf-tools ์์น ๊ธฐ๋ฐ) | |
| new_pythonpath = location_path | |
| # ๊ธฐ์กด PYTHONPATH๊ฐ ์์ผ๋ฉด ์ถ๊ฐํ๊ณ , ์์ผ๋ฉด ์๋ก ์ค์ | |
| if current_pythonpath: | |
| new_pythonpath = f"{new_pythonpath}:{current_pythonpath}" | |
| # PYTHONPATH ์ค์ | |
| os.environ["PYTHONPATH"] = new_pythonpath | |
| print(f"PYTHONPATH set to: {os.environ['PYTHONPATH']}") | |
| # ํ์ฌ ๋๋ ํ ๋ฆฌ ์ ์ฅ | |
| original_dir = os.getcwd() | |
| def run_pip_install(path): | |
| """ํด๋น ๊ฒฝ๋ก๋ก ์ด๋ํ ํ pip install . ์คํ""" | |
| if os.path.exists(os.path.join(path, 'setup.py')) or os.path.exists(os.path.join(path, 'pyproject.toml')): | |
| print(f"Installing dependencies in {path} using pip install .") | |
| os.chdir(path) | |
| try: | |
| result = subprocess.run([sys.executable, "-m", "pip", "install", "--user", "."], check=True, stderr=subprocess.PIPE, text=True) | |
| print(result.stdout) | |
| except subprocess.CalledProcessError as e: | |
| print(f"Error occurred while installing in {path}: {e.stderr}") | |
| else: | |
| print(f"No setup.py or pyproject.toml found in {path}, skipping...") | |
| def check_stf_alternative_installed(): | |
| # pip list | grep stf-alternative ๋ช ๋ น์ ์คํ | |
| result = subprocess.run(['pip', 'list'], stdout=subprocess.PIPE, text=True) | |
| # ์ถ๋ ฅ์์ stf-alternative ํจํค์ง๊ฐ ์๋์ง ํ์ธ | |
| if "stf-alternative" in result.stdout: | |
| print("stf-alternative ํจํค์ง๊ฐ ์ค์น๋์ด ์์ต๋๋ค.") | |
| else: | |
| print("stf-alternative ํจํค์ง๊ฐ ์ค์น๋์ง ์์์ต๋๋ค.") | |
| # ์ถ๋ ฅ์์ stf-alternative ํจํค์ง๊ฐ ์๋์ง ํ์ธ | |
| if "stf-tools" in result.stdout: | |
| print("stf-tools ํจํค์ง๊ฐ ์ค์น๋์ด ์์ต๋๋ค.") | |
| else: | |
| print("stf-tools ํจํค์ง๊ฐ ์ค์น๋์ง ์์์ต๋๋ค.") | |
| # ์ถ๊ฐ๋ ํจ์๋ค: 'libcublasLt.so.11'์ ๊ฒฝ๋ก๋ฅผ ์ฐพ์ LD_LIBRARY_PATH์ ์ถ๊ฐํ๋ ํจ์ | |
| def find_library(library_name): | |
| try: | |
| result = subprocess.run(['find', '/usr', '-name', library_name], stdout=subprocess.PIPE, stderr=subprocess.PIPE) | |
| library_path = result.stdout.decode('utf-8').strip() | |
| if library_path: | |
| library_dir = os.path.dirname(library_path) | |
| return library_dir | |
| else: | |
| print(f"๋ผ์ด๋ธ๋ฌ๋ฆฌ {library_name}์(๋ฅผ) ์ฐพ์ ์ ์์ต๋๋ค.") | |
| return None | |
| except Exception as e: | |
| print(f"์ค๋ฅ ๋ฐ์: {e}") | |
| return None | |
| def add_to_ld_library_path(library_dir): | |
| if library_dir: | |
| ld_library_path = os.environ.get('LD_LIBRARY_PATH', '') | |
| if library_dir not in ld_library_path: | |
| os.environ['LD_LIBRARY_PATH'] = library_dir + ':' + ld_library_path | |
| print(f"{library_dir}์ด(๊ฐ) LD_LIBRARY_PATH์ ์ถ๊ฐ๋์์ต๋๋ค.") | |
| else: | |
| print(f"{library_dir}์ด(๊ฐ) ์ด๋ฏธ LD_LIBRARY_PATH์ ํฌํจ๋์ด ์์ต๋๋ค.") | |
| else: | |
| print("์ ํจํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฒฝ๋ก๊ฐ ์์ต๋๋ค.") | |
| # ์ ์ฒด ํ๊ฒฝ ์ค์ ํ๋ก์ธ์ค ์คํ ํจ์ | |
| def initialize_environment(): | |
| """ํ๊ฒฝ ์ค์ ์ ์ํ ์ ์ฒด ํ๋ก์ธ์ค ์คํ""" | |
| print('aaaaaaaaaaaa') | |
| # pip ์ ๊ทธ๋ ์ด๋ ์คํ | |
| upgrade_pip() | |
| # ํจ์ ํธ์ถ | |
| print('11111111') | |
| check_stf_alternative_installed() | |
| # stf-api-alternative์์ pip install . ์คํ | |
| run_pip_install("/home/user/app/stf/stf-api-alternative") | |
| # stf-api-tools์์ pip install . ์คํ | |
| run_pip_install("/home/user/app/stf/stf-api-tools") | |
| # PYTHONPATH ์ค์ | |
| set_pythonpath() | |
| # 'libcublasLt.so.11' ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฒฝ๋ก ์ฐพ๊ธฐ ๋ฐ LD_LIBRARY_PATH์ ์ถ๊ฐ | |
| library_name = 'libcublasLt.so.*' | |
| library_dir = find_library(library_name) | |
| add_to_ld_library_path(library_dir) | |
| # ํจ์ ํธ์ถ | |
| print('222222') | |
| check_stf_alternative_installed() | |
| # ์๋ ์์ ๋๋ ํ ๋ฆฌ๋ก ๋์์ด | |
| os.chdir(original_dir) | |