我正在使用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
就是这样。
以下内容适用于osx10.14(x86_64)的mysql Ver 14.14 Distrib 5.7.23和Django 2.2.3。
brew install [email protected]
cd /usr/local/Cellar/[email protected]/1.1.1c/lib
sudo cp libssl.1.1.dylib libcrypto.1.1.dylib /usr/lib/
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
作品。