0

Nuitka 擅长将 Python 编译为可执行的二进制文件。但是编译后的二进制文件会从原始绝对路径中找到其他资源文件。因此,要移动到另一台计算机,需要使目录树与原始目录树相同。

例如,如果我编译这样的项目:

/home/me/myproj/
╠═ myprog.py
╚═ resource
   ╚═ foo.data

我应该将生成的二进制文件和资源放到另一台计算机的同一位置。如何解决这个问题呢?

我更简单的尖峰是:

# /home/me/myproj/spike.py
import os
print(os.path.dirname(__file__))

在编译它之后,移动到任何其他位置,我总是得到/home/me/myproj.

我需要一个结果,比如/another/path我将编译myproj.bin/another/path.

4

1 回答 1

0

解决__file__问题的另一个好功能是使用--standalone标志,它在一个文件夹中创建一个主“.bin”文件+其他“.so”依赖项。

python -m nuitka --standalone program.py

https://nuitka.net/doc/user-manual.html#use-case-4-program-distribution

于 2021-12-27T21:51:10.803 回答