我是编程的新手,我正在使用macOS Catalina 10.15.4 python 3.7和pyinstaller3.6将python脚本转换为可执行文件。我设法将脚本转换为可执行文件,但是单击它时出现以下错误:
issue:Traceback (most recent call last):
File "QC.py", line 2, in <module>
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/PyInstaller/loader/pyimod03_importers.py", line 623, in exec_module
exec(bytecode, module.__dict__)
File "cv2/__init__.py", line 5, in <module>
ImportError: dlopen(/Users/kapten42/Desktop/OCR/QA/dist/QC/cv2/cv2.cpython-37m-darwin.so, 2): Library not loaded: @loader_path/libpng16.16.dylib
Referenced from: /Users/kapten42/Desktop/OCR/QA/dist/QC/libfreetype.6.dylib
Reason: Incompatible library version: libfreetype.6.dylib requires version 54.0.0 or later, but libpng16.16.dylib provides version 38.0.0
[35604] Failed to execute script QC
我使用pip3安装了大多数软件包,除了tesseract以外,我必须使用brew安装。我一直在到处搜索,并且对此感到非常困惑。我用brew更新了libpng,但是它没有任何改变。以下是在我的代码顶部进行的导入的列表。我真的很困,所以任何建议都将不胜感激
from PIL import Image
import cv2
from skimage.filters import threshold_local
from skimage import io
import csv
import pytesseract
import re
import imutils
import numpy as np
from datetime import datetime
from spellchecker import SpellChecker
import json
import tempfile
import requests
import os
from pdf2image import convert_from_path
from dateutil.relativedelta import relativedelta
答案 0 :(得分:0)
所以我找到了解决问题的办法。 Pyinstaller将错误的libpng16.16.dylib拉到创建的dist文件夹中。我用
brew install libpng
获取最新版本,然后转到文件夹
usr/local/cellar/libpng/1.6.37/lib
并复制libpng16.16.dylib并将其移至dist文件夹即可解决问题。