Macbook M1 python-pyside6-mysql

Sziasztok!
Egy M1-es macbook-on kellene python-pyside6-mysql combós fejlesztést csinálnom.
A python 3.10.2 fenn. Virtualenv létrehozva, PySide 6.2.2 telepítve. De sajna az sqldriver-ek között nem szállítják a mysql-t.
A brew-val felraktam a qt-mysql-t (6.2.2, ami persze függőségként hozta a qt 6.2.2-t), abban benne van libsqlmysql.dylib.
Ha azt bemásolom a telepített pyside-ba (plugins/sqldrivers), akkor már azt írja, hogy elérhető, de nem tölti be.
Az otool -L kiírja a függőségeit, amiben szerintem van némi gubanc.

  1. Ha már fenn van a brew által a qt, qt-mysql, azt hogyan tudom beimportálni az adott virtualenv-be?
  2. Van valakinek egy használható mysql driver-e a PySide6 alá?
    (Próbáltam a forrásból való fordítást is, de az install-nál elhasalt)

Ha valakinek lenne tapasztalata, az most jól jönne!

Egy helyrol telepitettel midnent? Tehat brew hozta a Python-t, brew hozta a qt-t es az osszes tobbi dolgot? Elvileg nem kene masolgatnod semmit sehova, mert amikor fordul a pysideod, akkor a meglevo libek alapjan fogja osszerakni a dolgokat. Elkepzelheto (igen valoszinu), hogy kell mejd brewwel telepitett mariadb/mysql is.

Igen, ez volt az első verzió. Vagyis minden a brew-n keresztül ment. Python, qt, qt-mysql, pyside. És persze felraktam a mysql-t is ( kliens, szerver).
Csináltam egy virtualenv-et, oda már nem rakta be a pyside-ot, így a “from PySide6…” el is hasalt.
Ha virtualenv nélkül próbáltam, az import akkor is elhasalt…
De most elvileg ki van takarítva minden, megnézem megint.
A modul importálása a normál módon (pl from PySide6.QtWidget import QMainWindow) kell gondolom.

logok? outputok? Ugye verbose modon telepitettel midnent a venvbe, hogy minden kimenet latszodjon? Ugy sokkal konnyebb egyebkent segiteni, ha latjuk, amit latsz :slight_smile:

Mivel semmi lényeges nem volt, nekiestem nulláról. A kezdet:
python -V
Python 2.7.18

python3 -V
xcode-select: note: no developer tools were found at ‘/Applications/Xcode.app’, requesting install. Choose an option in the dialog to download the command line developer tools.

/bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)”

A home-brew telepítése után:
python3 -V
Python 3.8.9

echo ‘eval “$(/opt/homebrew/bin/brew shellenv)”’ >> /Users/janosczigany/.zprofile
eval “$(/opt/homebrew/bin/brew shellenv)”
brew install qt qt-mysql mysql mysql-client pyside

majd ezután már:

python3 -V
Python 3.9.10

pip3 freeze
protobuf==3.19.4
PySide6==6.2.2
shiboken6==6.2.2
shiboken6-generator==6.2.2
six==1.16.0

Majd létrehoztam a virtual-t:
python3 -m venv --system-site-packages testenv2

És működik

Eredetileg is ezt próbáltam, de folyamatosan a QMYSQL not loaded üzenetet kaptam. Amit észrevettem, hogy a brew most a qt és qt-mysql -re 6.2.3 as verziót hoz, eddig pedig 6.2.2
Ez lehet oka annak, hogy eddig nem ment?
De a lényeg, hogy működik. Köszönöm a segítséget.
Van esetleg valami hasznos javaslatod ebben a témában még?

Csak annyi, hogy ha python es venv, akkor miert telepitessz barmit a rendszer pythonba? En csak a qt/qt-mysql/mysql/mysql-client -et raktam volna fel a brew-be, ezutan megcsinaltam volna a venvet es mindent pippel telepitenek. A venv-nek pont az lenne a lenyege, hogy semmit nem hasznal a “kulso” pythonbol, minden python lib a venv-bol jon.

Én is így szoktam (pl windows alatt csak egy sima python, és minden a venv-ben. Még a mysql dll is csak bemásolva a projektmappába, plusz a netről levadászható a libqsqlmsql.dll)
Most is ez volt az alap, ahogy írtad: qt, qt-mysql, mysql. A venv-ben install PySide.
De első körben azt mondta, hogy nincs mysql driver (csak odbc, sqlite, psql).
Ha a qt-mysql-ből bemásoltam a libqsqlmysql.dylib-et a venv-ben lévő pyside-ba (plugins/sqldrivers), akkor látta, de nem töltötte be.
Abszulút egyetértek, hogy mindent a venv-be, de úgy tűnik, hogy a pyside nem nyalja fel a driver-t a qt-mysql-ből.

De ezert kene verbose modon nezni, mikozben rakja fel a pip, hogy mi az, amibol ugy dont, hogy neked nem kell a mysqles driver. Valoszinuleg valami libet toltene be, amibol nem az a verzio, nem olyan architektura van, ami eppen kellene. Ez az uzenetekbol kiderul. Ezt kell megoldani es ezutan menni fog a venv. Ezert is kerdeztem, hogy pontosan mit latsz, amikor verbose modon telepited, mert ennek pont ez a lenyege, hogy mindent lasson az ember.

Azt hiszem meg van.

“Non-user install because user site-packages disabled”

A vent-ben belül van egy pyvenv.cfg, és abban:

include-system-site-packages = false. alapértelmezettként.

Mivel eddig csak az általad is preferált venv-es környezetet használtam, soha nem kellett global-package.
Ha ezt átírom true-ra, vagy eleve a --system-site-packages -el hozom létre a venv-et, akkor kinyúl a qt-mysql-hez, és behúzza a driver.
Jó az elgondolás?

Azt mondanam, hogy nem, mert a --system-site-packages es a “include-system-site-packages” ugyonazt allitja, es ez csak a Python dolgokra vonatkozik. Tehat ennek nem kene ebbe beleszolnia.

Valószínűleg igazad van, de ez következetesnek tűnik.
Van még az éles használatig pár napom. Ha lesz időm csinálok egy image mentést. És megpróbálom újra nulláról, úgy hogy csak a qt, qt-mysql, és mysql megy a brew-val.
Ha az eddigi hibát nem is sikerül kideríteni, de a cél egy működő környezet előállítása.

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.