获取 "Library not loaded: libssl.1.0.0.dylib"、"Reason: image not found" 和 flask_mysqldb
Getting "Library not loaded: libssl.1.0.0.dylib", "Reason: image not found" with 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/lib
sudo cp libssl.1.0.0.dylib libcrypto.1.0.0.dylib /usr/lib/
记下文件夹名称 (1.0.1f)。根据你的 openssl 版本
第 3 步:删除现有链接
sudo rm libssl.dylib libcrypto.dylib
sudo ln -s libssl.1.0.0.dylib libssl.dylib
sudo ln -s libcrypto.1.0.0.dylib libcrypto.dylib
就是这样。
以下为我工作的 mysql Ver 14.14 Distrib 5.7.23,适用于 osx10.14 (x86_64)
& Django 2.2.3.
- 安装 1.1 版
brew install openssl@1.1
- 将所需的库复制到 /usr/lib 位置。如果您在复制到 /usr/lib 位置时遇到问题,请参阅此 url 上的文章。 System Integrity Change
cd /usr/local/Cellar/openssl@1.1/1.1.1c/lib
sudo cp libssl.1.1.dylib libcrypto.1.1.dylib /usr/lib/
- 删除并更新 link
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.1
转义为 openssl\@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,解决方案很简单 -- re-installing openssl:
brew reinstall openssl@1.1
之后,python 中的导入工作顺利。
我正在使用 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/lib
sudo cp libssl.1.0.0.dylib libcrypto.1.0.0.dylib /usr/lib/
记下文件夹名称 (1.0.1f)。根据你的 openssl 版本
第 3 步:删除现有链接
sudo rm libssl.dylib libcrypto.dylib
sudo ln -s libssl.1.0.0.dylib libssl.dylib
sudo ln -s libcrypto.1.0.0.dylib libcrypto.dylib
就是这样。
以下为我工作的 mysql Ver 14.14 Distrib 5.7.23,适用于 osx10.14 (x86_64) & Django 2.2.3.
- 安装 1.1 版
brew install openssl@1.1
- 将所需的库复制到 /usr/lib 位置。如果您在复制到 /usr/lib 位置时遇到问题,请参阅此 url 上的文章。 System Integrity Change
cd /usr/local/Cellar/openssl@1.1/1.1.1c/lib
sudo cp libssl.1.1.dylib libcrypto.1.1.dylib /usr/lib/
- 删除并更新 link
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.1
转义为 openssl\@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,解决方案很简单 -- re-installing openssl:
brew reinstall openssl@1.1
之后,python 中的导入工作顺利。