cri*_*ion 2 python mysql windows ffi anaconda
我正在尝试在Windows 10上使用anaconda(python 3.7 64 bit)和pymysql包打开mysql数据库。
在Windows命令提示符下,我执行以下操作:
import pymysql
db = pymysql.connect(host='localhost', user='tester', passwd='xxxx', port=3306, db='mydb')
Run Code Online (Sandbox Code Playgroud)
用户名,密码和端口正确;主机应该是本地主机(如果我通过127.0.0.1,则会收到相同的错误);但我收到以下错误,最后指出无法找到ffi软件包:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\programs\Anaconda3\lib\site-packages\pymysql\__init__.py", line 94, in Connect
return Connection(*args, **kwargs)
File "C:\programs\Anaconda3\lib\site-packages\pymysql\connections.py", line 327, in __init__
self.connect()
File "C:\programs\Anaconda3\lib\site-packages\pymysql\connections.py", line 598, in connect
self._request_authentication()
File "C:\programs\Anaconda3\lib\site-packages\pymysql\connections.py", line 873, in _request_authentication
auth_packet = _auth.caching_sha2_password_auth(self, auth_packet)
File "C:\programs\Anaconda3\lib\site-packages\pymysql\_auth.py", line 252, in caching_sha2_password_auth
data = sha2_rsa_encrypt(conn.password, conn.salt, conn.server_public_key)
File "C:\programs\Anaconda3\lib\site-packages\pymysql\_auth.py", line 132, in sha2_rsa_encrypt
rsa_key = serialization.load_pem_public_key(public_key, default_backend())
File "C:\programs\Anaconda3\lib\site-packages\cryptography\hazmat\backends\__init__.py", line 15, in default_backend
from cryptography.hazmat.backends.openssl.backend import backend
File "C:\programs\Anaconda3\lib\site-packages\cryptography\hazmat\backends\openssl\__init__.py", line 7, in <module>
from cryptography.hazmat.backends.openssl.backend import backend
File "C:\programs\Anaconda3\lib\site-packages\cryptography\hazmat\backends\openssl\backend.py", line 53, in <module>
from cryptography.hazmat.bindings.openssl import binding
File "C:\programs\Anaconda3\lib\site-packages\cryptography\hazmat\bindings\openssl\binding.py", line 13, in <module>
from cryptography.hazmat.bindings._openssl import ffi, lib
ImportError: DLL load failed: The specified module could not be found.
Run Code Online (Sandbox Code Playgroud)
我已经看到conda导航器(也不是pip)在其标准频道中没有看到ffi软件包。
我已经尝试过这个建议(添加conda-forge频道):
conda配置-添加通道conda-forge conda安装libffi
但是conda永远都在“解决环境”中,并且没有在合理的时间内给出答案。
我应该怎么做才能安装ffi并能够连接到数据库?我是世界上第一个在Windows上从python / Anaconda调用mysql的人吗?我想必须有一个解决方案。
谢谢,Marco
小智 6
我遇到了同样的问题。这是为我解决的问题:
1. pip uninstall scrapy
2. conda uninstall scrapy
3. pip install --force --upgrade scrapy
4. scrapy startproject dingding
有效。