Опитвам се да отворя mysql база данни на Windows 10, с 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:\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.
Виждал съм, че conda navigator (нито pip) не вижда ffi пакет от стандартните си канали.
Вече опитах това предложение (добавяне на канала conda-forge):
conda config --добавяне на канали conda-forge conda инсталиране на libffi
но conda отнема завинаги в "решаваща среда" и не дава отговори в разумно време.
Какво трябва да направя, за да инсталирам ffi и да мога да се свържа с db? Аз ли съм първият в света в извикването на mysql от python/Anaconda на windows? Предполагам, че трябва да има решение.
Благодаря, Марко