Python pyinstaller exe失败-fusionscript.dll问题

Python pyinstaller exe失败-fusionscript.dll问题,python,pyinstaller,Python,Pyinstaller,[感谢Charles Duffy温和地提出了一个更清晰的问题!我对Stack Overflow还不熟悉,非常感谢您的帮助。经过进一步研究,似乎依赖代码实际上在Blackmagic的fusionscript.dll代码中(如果.dll丢失,我的exe可以继续通过尝试导入的代码行),因此,在他们更新之前,我看不到任何方法可以绕过它。] 原始问题: 我一直在尝试让pyinstaller可执行文件在Windows10测试系统上运行。我的exe在安装了Python 3.6.8的系统上运行良好 完整的代码如

[感谢Charles Duffy温和地提出了一个更清晰的问题!我对Stack Overflow还不熟悉,非常感谢您的帮助。经过进一步研究,似乎依赖代码实际上在Blackmagic的fusionscript.dll代码中(如果.dll丢失,我的exe可以继续通过尝试导入的代码行),因此,在他们更新之前,我看不到任何方法可以绕过它。]

原始问题:

我一直在尝试让pyinstaller可执行文件在Windows10测试系统上运行。我的exe在安装了Python 3.6.8的系统上运行良好

完整的代码如下。以“trying:”开头的print命令成功并显示导入的正确路径。导入命令print(“使其通过导入”)之后的print命令不会立即执行,exe将退出,且不会显示任何错误

我已经确定,只有一个文件是exe在测试系统上运行所必需的,那就是Python安装的Lib文件夹中的os.py文件。如果没有该文件,exe在到达代码行时将退出(没有任何错误消息):script_module=imp.load_dynamic(“fusionscript”,path+“fusionscript”+ext)

对于任何试图复制的人:exe在安装Python 3.6.8时运行,或者更具体地说,在安装os.py时运行。我使用一个简单的pyinstaller importsetst.py命令创建了安装程序。我将fusionscipt.dll与生成的可执行文件一起放在文件夹中。如果存在os.py,exe将正常运行并打印其所有打印命令。如果从pythonlib目录中删除os.py,情况就不再是这样了,exe在点击imp命令时退出

注意:我知道imp已被弃用,但我的代码使用的API(用于解析的fusionscript.dll)仅适用于Python 3.6,因此我不能使用任何更新的API


代码如下:

from PyQt5.QtCore import QObject
import sys
import imp
import os
CURR_DIR = os.getcwd()
sys.path.append(CURR_DIR)
script_module = None
ext = ".dll"
path = CURR_DIR+"\\"
try:
    print("trying: " + path + "fusionscript" + ext)
    script_module = imp.load_dynamic("fusionscript", path + "fusionscript" + ext)
    print("Made it past import")
except ImportError:
    pass
print("script module = ",script_module)

始终将完整的错误消息(从单词“Traceback”开始)作为文本(不是屏幕截图,也不是指向外部门户的链接)进行讨论(不是评论)。还有其他有用的信息。根本没有错误消息。出现问题的行之前的行中有一个print语句的结果,然后exe退出,不再输出。“回溯”不会出现。如果您不显示导致问题的代码,则此问题没有答案-如果我们无法运行它,则无法说明导致问题的原因。请立即完成有问题的代码。(顺便说一句,我自己在尝试让Fusion 17.1的Python绑定正常工作时经历了一段艰难的时光——尽管那是在Fusion 17.1测试版,文档还没有更新的时候;现在发布了Fusion 17.1,我想再看一看;也就是说,这是Fusion,而不是Fusion+pyinstaller——您正在添加两个独立的复杂源代码(沿着那条路走)。