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 ,知道防守的前提是知道如何进攻。其实这才是找到您问题的最直接的方法,但不是最有效的。
1年前 评论

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

1年前 评论

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

1年前 评论