pyinstaller编译带pyd的程序,在本机可以运行,但把exe文件拿到其他环境运行报错

我是想防止被反编译,然后按照网上的方法,用cython的python build_pyd.py build_ext –inplace命令生成了一个mylib.pyd的动态链接库,然后用pyinstaller.exe -F -c bat2exe.py生成了一个exe文件,这个文件在我的电脑上运行正常。但拿去其他环境运行就报错
还有我把pyd文件删了,直接用py文件编译出的exe文件拿去其他环境运行是正常的,我的代码其实就一句sleep(200)做测试的都是这样,会是什么原因呢

讨论数量: 3

我想可能是下面几点原因:

  1. 别人电脑可能没有 Python 环境,python 在安装的时候,自带一些 dll 动态连接库,可能在执行您生成的exe 时,会调用其中的某些或某个 dll。针对这个问题,您可以在其他电脑安装相同版本python 进行测试。
  2. 您的系统和对方系统多少会存在差异,比如缺少某些系统的dll 文件,这也可能是原因。针对这个问题,您可以尝试dll 检测,您可以参考这个文档: 连接
  3. 如果您不想被反编译,那么您可以先连接如何反编译exe ,知道防守的前提是知道如何进攻。其实这才是找到您问题的最直接的方法,但不是最有效的。
4个月前 评论

谢谢你,我根据你的方向再研究下

4个月前 评论

问题终于解决了。原来是我的虚拟机一直没打补丁,然后用360打上全部补丁后就所有问题都解决了。。。最终虚拟机上是不需要装python环境也可以的,这个也是我想要的效果。

4个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!