"vscode:/vscode.git/clone" did not exist on "19a00eb21099f7cd82fc4460718613df6f54fea1"
Commit a3fb334b authored by zhuwenwen's avatar zhuwenwen
Browse files

add prepare_so_files to prepare so

parent 56d6c689
...@@ -11,6 +11,8 @@ import subprocess ...@@ -11,6 +11,8 @@ import subprocess
import sys import sys
from pathlib import Path from pathlib import Path
from shutil import which from shutil import which
import tarfile
import shutil
import torch import torch
from packaging.version import Version, parse from packaging.version import Version, parse
...@@ -31,6 +33,39 @@ skip_vllm_build = False ...@@ -31,6 +33,39 @@ skip_vllm_build = False
if int(os.environ.get('SKIP_VLLM_BUILD', '0')) == 1: if int(os.environ.get('SKIP_VLLM_BUILD', '0')) == 1:
skip_vllm_build = True skip_vllm_build = True
def prepare_so_files():
source_dir = "so.tar.gz"
target_dir = "vllm"
if not os.path.exists(source_dir):
print(f"Warning: {source_dir} not found, skipping extraction")
return
print(f"Preparing C extension files from {source_dir}...")
temp_dir = "temp_so_extract"
os.makedirs(temp_dir, exist_ok=True)
try:
with tarfile.open(source_dir, "r:*") as tar:
tar.extractall(temp_dir)
for root, dirs, files in os.walk(temp_dir):
for file in files:
if file in ["_C.abi3.so", "_moe_C.abi3.so"]:
src_path = os.path.join(root, file)
dst_path = os.path.join(target_dir, file)
os.makedirs(os.path.dirname(dst_path), exist_ok=True)
shutil.copy2(src_path, dst_path)
print(f"Copied {file} to {dst_path}")
finally:
if os.path.exists(temp_dir):
shutil.rmtree(temp_dir)
def load_module_from_path(module_name, path): def load_module_from_path(module_name, path):
spec = importlib.util.spec_from_file_location(module_name, path) spec = importlib.util.spec_from_file_location(module_name, path)
module = importlib.util.module_from_spec(spec) module = importlib.util.module_from_spec(spec)
...@@ -769,6 +804,7 @@ if _build_custom_ops(): ...@@ -769,6 +804,7 @@ if _build_custom_ops():
ext_modules.append(CMakeExtension(name="vllm._C")) ext_modules.append(CMakeExtension(name="vllm._C"))
if skip_vllm_build: if skip_vllm_build:
prepare_so_files()
package_data = { package_data = {
"vllm": [ "vllm": [
"py.typed", "py.typed",
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment