intel-analytics / ipex-llm

Accelerate local LLM inference and finetuning (LLaMA, Mistral, ChatGLM, Qwen, Mixtral, Gemma, Phi, MiniCPM, Qwen-VL, MiniCPM-V, etc.) on Intel XPU (e.g., local PC with iGPU and NPU, discrete GPU such as Arc, Flex and Max); seamlessly integrate with llama.cpp, Ollama, HuggingFace, LangChain, LlamaIndex, vLLM, GraphRAG, DeepSpeed, Axolotl, etc
Apache License 2.0
6.75k stars 1.27k forks source link

ipex-llm-ollama-installer-20240918.exe安装后用另一个exe调用文件夹中的start.bat会提示缺少dll等无法运行 #12334

Open dayskk opened 3 weeks ago

dayskk commented 3 weeks ago

1、双击安装ipex-llm-ollama-installer-20240918.exe 默认安装在C:\Users\OPS17\ipex-llm-ollama

2、拷贝ipex-llm-ollama文件夹到C:\aipc\

3、这个时候运行ipex-llm-ollama里面的start.bat,可以正常运行,并且访问什么都正常

4、这个时候用Python编写一个程序,并打包为exe来调用start.bat,会报缺少dnnl.dll、svml_dispmd.dll等等文件,并且无法正常运行。

python 脚本就一句 os.popen("start.bat") 然后用pyinstaller 进行打包为exe文件 这个时候运行exe文件,就报缺少dnnl.dll、svml_dispmd.dll等等文件,并且无法正常运行。

KiwiHana commented 2 weeks ago

ipex-llm-ollama-installer-20240918.exe是为了方便离线搭建环境把对应的文件抽出来单独打包的,依赖的dll也单抽出来放到了ipex-llm-ollama的目录下,跟ollama.exe同一个目录下。

Start.bat里面先将目录切换到了c:\users\OPS17\ipex-llm-ollama目录,然后启动了ollama serve. 这个时候command console里ollama.exe搜索dll是标准windows下搜索dll的顺序,在当前路径->父进程的路径-> windows system路径…

这个python编写程序的时候启动ipex-llm-ollama-installer-20240918.exe里的 start.bat, 感觉是Python这个命令的启动时候的默认路径问题,你参考这个url试试?

https://stackoverflow.com/questions/1685157/how-can-i-specify-working-directory-for-a-subprocess

也许这个os.chdir可以解决

cwd = os.getcwd()

os.chdir('c:\some\directory')

subprocess.Popen('tool.exe')

os.chdir(cwd)