Failed to import from vllm._C with ImportError问题解决

1.问题描述

笔者在使用FastChat框架中的vllm_work部署DeepSeek-Coder-V2时遇到了如下报错:

$ python3 /ssdwork/FastChat/fastchat/serve/vllm_worker.py --model-path /ssdwork/DeepSeek-Coder-V2-Instruct/ --num-gpus 8
WARNING 08-13 02:36:34 _custom_ops.py:14] Failed to import from vllm._C with ImportError('/ssdwork/.local/lib/python3.10/site-packages/vllm/_C.abi3.so: undefined symbol: _ZN5torch3jit11parseSchemaERKSs')
INFO 08-13 02:36:39 config.py:715] Defaulting to use mp for distributed inference
WARNING 08-13 02:36:39 arg_utils.py:762] Chunked prefill is enabled by default for models with max_model_len > 32K. Currently, chunked prefill might not work with some features or models. If you encounter any issues, please disable chunked prefill by setting --enable-chunked-prefill=False.
INFO 08-13 02:36:39 config.py:806] Chunked prefill is enabled with max_num_batched_tokens=512.
INFO 08-13 02:36:39 llm_engine.py:176] Initializing an LLM engine (v0.5.3.post1) with config: model='/ssdwork/DeepSeek-Coder-V2-Instruct/', speculative_config=None, tokenizer='/ssdwork/DeepSeek-Coder-V2-Instruct/', skip_tokenizer_init=False, tokenizer_mode=auto, revision=None, rope_scaling=None, rope_theta=None, tokenizer_revision=None, trust_remote_code=True, dtype=torch.bfloat16, max_seq_len=163840, download_dir=None, load_format=LoadFormat.AUTO, tensor_parallel_size=8, pipeline_parallel_size=1, disable_custom_all_reduce=False, quantization=None, enforce_eager=False, kv_cache_dtype=auto, quantization_param_path=None, device_config=cuda, decoding_config=DecodingConfig(guided_decoding_backend='outlines'), observability_config=ObservabilityConfig(otlp_traces_endpoint=None), seed=0, served_model_name=/ssdwork/DeepSeek-Coder-V2-Instruct/, use_v2_block_manager=False, enable_prefix_caching=False)
INFO 08-13 02:36:39 custom_cache_manager.py:17] Setting Triton cache manager to: vllm.triton_utils.custom_cache_manager:CustomCacheManager
WARNING 08-13 02:36:41 _custom_ops.py:14] Failed to import from vllm._C with ImportError('/ssdwork/.local/lib/python3.10/site-packages/vllm/_C.abi3.so: undefined symbol: _ZN5torch3jit11parseSchemaERKSs')
WARNING 08-13 02:36:41 _custom_ops.py:14] Failed to import from vllm._C with ImportError('/ssdwork/.local/lib/python3.10/site-packages/vllm/_C.abi3.so: undefined symbol: _ZN5torch3jit11parseSchemaERKSs')
WARNING 08-13 02:36:41 _custom_ops.py:14] Failed to import from vllm._C with ImportError('/ssdwork/.local/lib/python3.10/site-packages/vllm/_C.abi3.so: undefined symbol: _ZN5torch3jit11parseSchemaERKSs')
WARNING 08-13 02:36:41 _custom_ops.py:14] Failed to import from vllm._C with ImportError('/ssdwork/.local/lib/python3.10/site-packages/vllm/_C.abi3.so: undefined symbol: _ZN5torch3jit11parseSchemaERKSs')
WARNING 08-13 02:36:41 _custom_ops.py:14] Failed to import from vllm._C with ImportError('/ssdwork/.local/lib/python3.10/site-packages/vllm/_C.abi3.so: undefined symbol: _ZN5torch3jit11parseSchemaERKSs')
WARNING 08-13 02:36:41 _custom_ops.py:14] Failed to import from vllm._C with ImportError('/ssdwork/.local/lib/python3.10/site-packages/vllm/_C.abi3.so: undefined symbol: _ZN5torch3jit11parseSchemaERKSs')
WARNING 08-13 02:36:41 _custom_ops.py:14] Failed to import from vllm._C with ImportError('/ssdwork/.local/lib/python3.10/site-packages/vllm/_C.abi3.so: undefined symbol: _ZN5torch3jit11parseSchemaERKSs')

尽管是warning信息,但会导致模型加载180GB显存左右时突然卡住变成僵尸进程。

2.问题解决

通过上网查询资料,发现大概率是pip包版本之间的冲突,使用如下命令可以进行检测是否有包版本与vllm相关包形成了冲突:

pip check

结果就是vllmvllm-flash-attnvllm-nccl-cu12这些包对应的torch版本为2.3.1,而我的torch是最新版本2.4.0,卸载掉重新安装好对应正确版本的包即可。

### 解决 Python 中 `No module named 'vllm._version'` 报错 当遇到 `No module named 'vllm._version'` 这类错误时,通常意味着 Python 无法找到指定模块或其子模块。具体到此案例中,可能是由于以下几个原因: #### 可能的原因及解决方案 1. **未正确安装 vllm** 如果 vllm 没有被正确安装,则会引发此类导入错误。建议验证 vllm 是否已成功安装并位于正确的环境中。 ```bash conda activate your_env_name pip list | grep vllm ``` 若列表中不存在 vllm 或者版本不符合预期,可以尝试重新安装最新版 vllm[^3]。 2. **路径配置问题** 即使 vllm 已经安装完成,在某些情况下仍可能出现路径解析失败的情况。这可能是因为当前工作目录不在 vllm 安装位置的父级目录下。可以通过切换至 vllm 的源码根目录来解决问题。 ```bash cd /path/to/vllm/source/code/ python -c "import vllm" ``` 3. **环境变量设置不当** 确认 PYTHONPATH 环境变量是否包含了 vllm 库所在的绝对路径。如果缺失,可以在终端临时添加该路径以便测试。 ```bash export PYTHONPATH=$PYTHONPATH:/path/to/vllm/library ``` 4. **库内部结构变化** `_version.py` 文件通常是用来存储软件包的具体版本号信息。有时开发者会在发布新版本时调整文件夹结构或移除旧有的组件。因此,确认所使用的 vllm 版本与其官方文档说明一致非常重要。 5. **依赖冲突** 当存在多个不同版本的相同库共存于同一环境下时,也可能导致类似的 ImportError。考虑创建一个新的干净 Conda 虚拟环境专门用于运行目标应用程序,并严格按照需求文件中的依赖关系进行安装。 ```python # 示例代码片段:检查是否有其他同名库干扰正常加载 try: import vllm except ImportError as e: print(f"ImportError occurred: {e}") else: try: from vllm import _version print("Successfully imported vllm._version") except ImportError as ee: print(f"Failed to import vllm._version with error: {ee}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值