gpt4 book ai didi

python - 使用 Nuitka 编译的脚本引发段错误

转载 作者:太空宇宙 更新时间:2023-11-03 16:59:01 27 4
gpt4 key购买 nike

我有一个脚本“test.py”,它导入一些“.so”模块并依赖于它们。 “.so”模块存在于“COMPILED”文件夹中,我已将其绝对路径添加到 PYTHONPATH 环境变量中。所以,现在当我运行它时 - “$ python test.py” - 它运行得很好。当我使用 Nuitka -“$ nuitka --recurse-all test.py”编译它时 - 它也会编译并生成一个“test.exe”可执行文件,现在当我执行它而不是导入模块并正常运行时,它会引发一个“段错误”

最后,我想补充一点,我也使用 Nuitka 生成了“.so”文件 - 它们基本上是模块。对于普通的未编译的 python,它们工作起来就像做梦一样,但是一旦我用 Nuitka 编译 test.py....KABOOM!

此问题之前已发布:

但是它还没有得到答复,我无法发表评论或通知那里的人,因为我刚刚创建了我的帐户,所以我再次询问了它。这是之前询问的版本的链接: python package complied with nuitka fails with segmentation fault

Directory Structure:
/PARENT_FOLDER
|______/COMPILED: <---- this folder contains all the '.so' files
| file1.so
| file2.so
| .
| .
|______test.py <---- here is the test.py script

最佳答案

好的!所以我的问题已经解决了。事实证明,这是内存布局和我从这里得到一些提示的问题: http://www.freelists.org/post/nuitka-dev/Building-modules-separately-from-the-main-application,3

该页面基本上说,使用 clang 和 nuitka 而不是 gcc 可以消除段错误。我本来想尝试一下,但我随机输入了“nuitka --help”并遇到了这个选项“--lto(链接时间优化)”。我想尝试一下 - 请注意,根据 --help 这需要 g++ - 所以而不是运行

nuitka --recurse-all test.py 

我跑了

nuitka --lto test.py

生成的二进制文件执行得很好,没有“段错误”。我也跑了

nuitka --recurse-all --lto test.py 

这也有效 - 如果您想知道的话。这也被报告为 Nuitka 错误列表中的错误:

http://bugs.nuitka.net/issue238?@ok_message=msg%201799%20created%0Aissue%20238%20messages%20edited%20ok&@template=item

环境:

努伊特卡版本:0.5.18

海湾合作委员会版本:4.8.4

Intel corei5 上的 Ubuntu 14.04 64 位

关于python - 使用 Nuitka 编译的脚本引发段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35163523/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com