来自 cython 的完全独立的 exe

Moh*_* B. 5 python exe py2exe pyinstaller cython

我有一个 python 脚本,旨在成为一个完全独立的 exe,据我所知,可以通过以下方法来完成:

1-使用 py2exe 或 pyinstaller 之类的东西。他们的问题是众所周知的,与其他任何东西相比,输出非常大,只有数十 MB 来打印 hello world 并不好。所以,我希望没有人推荐使用它们。

2-另一种方法是将其编译为 C,然后将此 C 编译为 exe 我已经尝试了第二个解决方案,并使用 Cython 达到了良好的 exe 大小

cython --embed my_code.py
Run Code Online (Sandbox Code Playgroud)

这给出了 my_code.c 。我把它带到 Visual Studio 编译器来编译它:

cl my_code.c /I C:\python3\include /link /LIBPATH:C:\python3\libs 
Run Code Online (Sandbox Code Playgroud)

现在我有了exe,但不幸的是,它根本不是独立的!

1-我的用户定义的导入应该在它旁边才能工作。(我以为它们会合并,但这显然没有发生)

2-最大的问题是它仍然依赖于我的计算机上的python路径-Lib文件夹

当在另一台电脑(没有Python)上尝试时,出现以下错误:

Py_Initialize fails - unable to load the file system codec
No module named encodings
Run Code Online (Sandbox Code Playgroud)

就我的搜索而言,这是由于他找不到库编码,它仍然会查找 C:\python3\Libs (不是独立的,仍然希望在客户电脑上安装 python)

我希望找到上述两个问题的解决方案,并提前致谢。