【问题标题】:How to get the current path of compiled binary from Python using Nuitka?如何使用 Nuitka 从 Python 获取已编译二进制文件的当前路径?
【发布时间】:2019-12-20 15:03:32
【问题描述】:

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的结果。

如果我将编译后的 myproj.bin 移动到 /another/path,我需要像 /another/path 这样的结果。

【问题讨论】:

  • 谢谢,如你所说。
  • 很高兴听到……不客气。大多数 Python 编译器都提供了某种方式来执行/控制 __file__ 中的内容,因为这是执行此类操作的一种相当常见的方式。
  • 谢谢。我搜索了几天,没有找到明确的答案。非常高兴能这么快得到答复。真的感谢。我发布了new question。希望再次得到您的帮助。

标签: python nuitka


【解决方案1】:

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

python -m nuitka --standalone program.py

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

【讨论】:

  • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 1970-01-01
  • 2011-04-22
  • 1970-01-01
  • 2021-11-02
  • 2017-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多