li-plus / chatglm.cpp

C++ implementation of ChatGLM-6B & ChatGLM2-6B & ChatGLM3 & GLM4(V)
MIT License
2.92k stars 333 forks source link

Windows下Python Binding GPU编译后无法导入chatglm_cpp #181

Open Jzhnakui opened 11 months ago

Jzhnakui commented 11 months ago

我是windows,一样的报错 G:\fuckkk\chatglm.cpp\build\lib.win-amd64-cpython-310\chatglm_cpp image D:\Anaconda3-2021.11\envs\chatglm\Lib\site-packages\chatglm_cpp image

也不再冲突目录中加载; image

已经参考 https://github.com/li-plus/chatglm.cpp/issues/177 https://github.com/li-plus/chatglm.cpp/issues/91 无法解决

EpicLolia commented 10 months ago

Python3.8之后需要通过os.add_dll_directory手动添加DLL搜索路径。 这里我们需要这两个CUDA的DLL: image 你只需要在__init__.py文件的import chatglm_cpp._C as _C之前执行os.add_dll_directory(os.environ['CUDA_PATH'] + '/bin')即可。 参考代码如下:

import sys
if sys.version_info >= (3, 8) and sys.platform == "win32":
    import os
    if os.environ.get('CUDA_PATH') is not None:
        os.add_dll_directory(os.environ['CUDA_PATH'] + '/bin')

import chatglm_cpp._C as _C
M1saka10010 commented 10 months ago

if sys.version_info >= (3, 8) and sys.platform == "win32": import os if os.environ.get('CUDA_PATH') is not None: os.add_dll_directory(os.environ['CUDA_PATH'] + '/bin')

经过测试,可以了,不过我这边默认的 cuda path 名字叫 CUDA_PATH_V12_3

shazhongcheng commented 9 months ago

牛皮

mark-legend commented 6 months ago

高手