获得"Library not loaded: libssl.1.0.0.dylib","Reason: image not found"与flask_mysqldb



我正在用Flask尝试Python 3,但在使用数据库时遇到以下错误。

我在macOS High Sierra v. 10.13.6上执行此操作

我的导入代码如下:

from flask import Flask, render_template, flash, redirect, url_for, session, request, logging
from data import Articles
from flask_mysqldb import MySQL
from wtforms import Form, StringField, TextAreaField, PasswordFeild, validators
from passlib.hash import sha256_crypt

尝试运行该应用程序时遇到的错误如下:

Traceback (most recent call last):
File "app.py", line 3, in <module>
from flask_mysqldb import MySQL  
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site- 
packages/flask_mysqldb/__init__.py", line 1, in <module> import MySQLdb  
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site- 
packages/MySQLdb/__init__.py", line 18, in <module> import _mysql  
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site- 
packages/_mysql.cpython-37m-darwin.so, 2): Library not loaded: 
libssl.1.0.0.dylib  
Referenced from: /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site- 
packages/_mysql.cpython-37m-darwin.so  
Reason: image not found

我环顾了与我相关的其他多个问题,但似乎找不到任何可以解决我的问题的东西。或者至少我不知道怎么做。 我真的希望有人能帮助我。

解决了问题

在进行了更多搜索后,我找到了一个适合我的修复程序:

第 1 步:使用 brew 安装 openssl

brew install openssl

第 2 步:复制 libssl.1.0.0.dylib 和 libcrypto.1.0.0.dylib


cd /usr/local/Cellar/openssl/1.0.1f/libsudo cp libssl.1.0.0.dylib libcrypto.1.0.0.dylib /usr/lib/

记下文件夹名称 (1.0.1f(。根据您的openssl版本,将会有所变化

步骤 3:删除现有链接


sudo rm libssl.dylib libcrypto.dylibsudo ln -s libssl.1.0.0.dylib libssl.dylib
sudo ln -s libcrypto.1.0.0.dylib libcrypto.dylib

就是这样。

以下为我工作 mysql 版本 14.14 发行版 5.7.23,适用于 osx10.14 (x86_64( &Django 2.2.3.

  1. 安装版本 1.1
brew install openssl@1.1
  1. 将所需的库复制到/usr/lib 位置。如果您在复制到/usr/lib 位置时遇到问题,请参阅此 URL 上的文章。系统完整性更改
cd /usr/local/Cellar/openssl@1.1/1.1.1c/lib
sudo cp libssl.1.1.dylib libcrypto.1.1.dylib /usr/lib/
  1. 删除和更新链接
sudo rm libssl.dylib libcrypto.dylib
sudo ln -s libcrypto.1.1.dylib libcrypto.dylib
sudo ln -s libssl.1.1.dylib libssl.dylib

早些时候我收到以下错误。

ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/osgeo/_gdal.cpython-37m-darwin.so, 2): Library not loaded: /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib
Referenced from: /usr/local/opt/gdal/lib/libgdal.20.dylib
Reason: image not found

对于以下导入

import gdal

只需在所需位置创建目录

我的安装在这里...

/

usr/local/Cellar/openssl/1.0.2s/

我在他们想要的位置创建了一个目录。 openssl 目录不存在,我 mkdir 编辑了它。

/

usr/local/opt/openssl/

然后根据需要复制文件夹。现在

import gdal

工程。

我对这个问题的方法是这样的:

而不是:

from flask_mysqldb import MySQL

我使用过:

from flaskext.mysql import MySQL

所以这意味着我pip install flask-mysql而不是pip install flask-mysqldb. 注意:如果要获取游标,使用此库可以执行cursor = mysql.get_db().cursor()

如果是 Mac,则在更新 openssl 路径的~/.bash_profile中。逃脱openssl@1.1openssl@1.1.

export PATH="/usr/local/opt/openssl@1.1/bin:$PATH" export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib" export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include"

对我来说,我已经安装了openssl,解决方案很简单 - 重新安装openssl:

brew reinstall openssl@1.1

之后,python中的导入工作顺利。

最新更新