node_vm2打包成exe报错:Error: Cannot find module xxx _MEI399162\node_vm2\vm-server

我是使用node_vm2库执行Js文件,开始是用execjs的,但是发现执行某些运算,execjs与node和浏览器执行结果不一致,execjs还是存在一些问题,所以使用node_vm2,但是使用pyinstaller打包含node_vm2库,(包含pyqt5),运行时报错:Error: Cannot find module xxx _MEI399162\node_vm2\vm-server

node:internal/modules/cjs/loader:936
  throw err;
  ^

Error: Cannot find module 'C:\Users\29571\AppData\Local\Temp\_MEI399162\node_vm2\vm-server'
[90m    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)[39m
[90m    at Function.Module._load (node:internal/modules/cjs/loader:778:27)[39m
[90m    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:77:12)[39m
[90m    at node:internal/main/run_main_module:17:47[39m {
  code: [32m'MODULE_NOT_FOUND'[39m,
  requireStack: []

提示找不到node_vm2\vm-server,试了各种办法,比如将node_vm2文件夹复制到exe同目录,仍然报错,下面记录一下主要的历程

主要思路:找到node_vm2安装包,在Lib\site-packages文件夹下,将文件夹加入打包参数

1、使用--add-data加参数,命令如下:pyinstaller -D -w --add-data="D:\PROGRAM\Anaconda3\Lib\site-packages\node_vm2\vm-server;./" run.py        (vm-server后面带分号;和点杠./)

运行文件时,发现C:\Users\29571\AppData\Local\Temp\_MEI399162\文件夹下没有node_vm2这个文件夹,而vm-server下的文件被打包进来了(这个文件夹是个临时文件夹,要程序运行时才找得到,程序关闭后,它就消失了),运行程序仍然报找不到node_vm2\vm-server这个错

2、尝试改命令如下:pyinstaller -D -w --add-data="D:\PROGRAM\Anaconda3\Lib\site-packages\node_vm2;./" run.py

运行文件时,发现C:\Users\29571\AppData\Local\Temp\_MEI399162\文件夹下有了vm-server,但是没有node-vm2,仍然报这个错

3、新建一个文件夹,将node_vm2文件夹复制到新建文件夹,改命令如下:pyinstaller -D -w --add-data="C:\Users\29571\Desktop\新建文件夹;./" run.py  

如此以来,node_vm2这个文件夹被整个打包进去了,程序正常运行

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值