我正试图在windows 10上打开一个mysql数据库,其中包含anaconda(python 3.7 64位(和pymysql包。
在windows命令提示符下,我执行以下操作:
import pymysql
db = pymysql.connect(host='localhost', user='tester', passwd='xxxx', port=3306, db='mydb')
用户名、密码和端口正确;主机应该是localhost(如果我通过127.0.0.1,我会得到同样的错误(;但我得到了以下错误,最后声明它找不到ffi包:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:programsAnaconda3libsite-packagespymysql__init__.py", line 94, in Connect
return Connection(*args, **kwargs)
File "C:programsAnaconda3libsite-packagespymysqlconnections.py", line 327, in __init__
self.connect()
File "C:programsAnaconda3libsite-packagespymysqlconnections.py", line 598, in connect
self._request_authentication()
File "C:programsAnaconda3libsite-packagespymysqlconnections.py", line 873, in _request_authentication
auth_packet = _auth.caching_sha2_password_auth(self, auth_packet)
File "C:programsAnaconda3libsite-packagespymysql_auth.py", line 252, in caching_sha2_password_auth
data = sha2_rsa_encrypt(conn.password, conn.salt, conn.server_public_key)
File "C:programsAnaconda3libsite-packagespymysql_auth.py", line 132, in sha2_rsa_encrypt
rsa_key = serialization.load_pem_public_key(public_key, default_backend())
File "C:programsAnaconda3libsite-packagescryptographyhazmatbackends__init__.py", line 15, in default_backend
from cryptography.hazmat.backends.openssl.backend import backend
File "C:programsAnaconda3libsite-packagescryptographyhazmatbackendsopenssl__init__.py", line 7, in <module>
from cryptography.hazmat.backends.openssl.backend import backend
File "C:programsAnaconda3libsite-packagescryptographyhazmatbackendsopensslbackend.py", line 53, in <module>
from cryptography.hazmat.bindings.openssl import binding
File "C:programsAnaconda3libsite-packagescryptographyhazmatbindingsopensslbinding.py", line 13, in <module>
from cryptography.hazmat.bindings._openssl import ffi, lib
ImportError: DLL load failed: The specified module could not be found.
我看到conda-navigator(nor-pip(在其标准通道中看不到ffi包。
我已经尝试过这个建议(添加conda伪造通道(:
conda-config—添加通道conda-forgeconda安装libffi
但是conda在"解决环境"中花费了很长时间,没有在合理的时间内给出答案。
我应该怎么做才能安装ffi并能够连接到数据库?我是世界上第一个在windows上从python/Anaconda调用mysql的人吗?我想一定有解决办法。
谢谢Marco
我遇到了同样的问题。以下是为我解决问题的方法:
1. pip uninstall scrapy
2. conda uninstall scrapy
3. pip install --force --upgrade scrapy
4. scrapy startproject dingding
它有效。
我得到了类似的错误:
File "/root/ncs/bootloader/mcuboot/scripts/imgtool.py", line 22, in <module>
main.imgtool()
File "/usr/lib/python3.7/site-packages/lib/python3.7/site-packages/click/core.py", line 829, in __call__
return self.main(*args, **kwargs)
File "/usr/lib/python3.7/site-packages/lib/python3.7/site-packages/click/core.py", line 782, in main
rv = self.invoke(ctx)
File "/usr/lib/python3.7/site-packages/lib/python3.7/site-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/lib/python3.7/site-packages/lib/python3.7/site-packages/click/core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/lib/python3.7/site-packages/lib/python3.7/site-packages/click/core.py", line 610, in invoke
return callback(*args, **kwargs)
File "/root/ncs/bootloader/mcuboot/scripts/imgtool/main.py", line 111, in getpub
key = load_key(key)
File "/root/ncs/bootloader/mcuboot/scripts/imgtool/main.py", line 74, in load_key
key = keys.load(keyfile)
File "/root/ncs/bootloader/mcuboot/scripts/imgtool/keys/__init__.py", line 52, in load
backend=default_backend())
File "/usr/lib/python3.7/site-packages/cryptography/hazmat/backends/__init__.py", line 14, in default_backend
from cryptography.hazmat.backends.openssl.backend import backend
File "/usr/lib/python3.7/site-packages/cryptography/hazmat/backends/openssl/__init__.py", line 6, in <module>
from cryptography.hazmat.backends.openssl.backend import backend
File "/usr/lib/python3.7/site-packages/cryptography/hazmat/backends/openssl/backend.py", line 113, in <module>
from cryptography.hazmat.bindings.openssl import binding
File "/usr/lib/python3.7/site-packages/cryptography/hazmat/bindings/openssl/binding.py", line 14, in <module>
from cryptography.hazmat.bindings._openssl import ffi, lib
ImportError: this module was compiled for Python 3.5
解决方案:
在
/usr/lib
和/usr/local/lib
中搜索_cffi_backend.cpython*.so
杀死这些
_cffi_backend.cpython*.so
在
/usr/lib
和/usr/local/lib
中搜索cffi
目录杀死这些目录
pip3 install --force-reinstall cryptography