我使用 Pyinstaller 和 Python 3.9.13,当我使用这个命令“pyinstaller interface.py --onefile -w”时 要将项目转换为 exe 文件,我遇到了这个问题:
当我删除 --onefile 标志时,没有包含其他库的 ultralytics 文件夹。 有什么帮助吗?
注意:我使用resource_path()函数。
我遇到了同样的问题,并在 ultralytic 的 github 讨论部分发现了类似的问题。在那里,3月15日用户“dh031200”在这个link中的回答帮助我解决了这个问题。该用户描述的 5 个步骤也可以解决您的问题。在那里,仅在第 1 步将“从源安装 pip install -e '.[dev]'”更改为“从源安装 pip install -e .[dev]”,即应删除 .[dev] 周围的引号。
我不确定这是否是最佳解决方案,但经过数小时的研究和试错运行,以下是我设法解决此问题的方法:
或者你可以这样做: 第 35 行:DEFAULT_CFG_PATH = ROOT / 'cfg/default.yaml' 更改:DEFAULT_CFG_PATH = os.path.join(os.getcwd(), 'default.yaml')
pyinstaller --onefile --windowed --add-data="best.pt;。" --add-data="default.yaml;。"主要.py
或者: pyinstaller --onefile --windowed --add-data="default.yaml;。"主要.py
从多处理导入 freeze_support if name == "main":
freeze_support()
或者: 导入多重处理
在主程序 if name == "main": multiprocessing.freeze_support()
在我的导入声明之后就解决了它。再说一遍,上面是我从各处废弃的解决方案的汇编,可能不是最好的路径,但它让我走到了最后。希望有帮助