Αντρω δι Νεξυνω

python3 + wxWidget + Ubuntu 18.04 = problemi, Appunti su di una installazione

« Older   Newer »
  Share  
view post Posted on 28/11/2018, 20:13
Avatar

Nubbio x Sempre

Group:
Moderazione globale
Posts:
7,226

Status:


Ciao agli improbabili lettori :)

Oggi, un appunto a mio promemoria sulla catena di problematiche (non gravi per fortuna) riscontrate per utilizzare il GUI Framework "wxWidget" (già conosciuto come wxWindows) sulla mia versione 3 di python in Ubuntu 18.04.1 ... Le metto qui tanto per averle a portata di mano dato che, se ingrano, dovrò rifarlo su di un altro paio di computer, quanto perché sia disponibile se ci incappa qualcuno cui possa servire.

La problematica nasce dal passaggio di python dalla versione 2.x alla versione 3..x che ha obbligato la comunità wxWidget a fare un aggiornamento sostanzioso del codice (progetto Phoenix), allo stato le librerie non sono disponibili nei repository di Ubuntu, sono però raggiungibili tramite il "pip" di python ... consapevole della circostanza, ovviamente, sono andato a caricarle direttamente da li ... primo problema!
CITAZIONE
:~$ pip3 install --user wxPython
Traceback (most recent call last):
File "/usr/local/bin/pip3", line 7, in <module>
from pip._internal import main
ModuleNotFoundError: No module named 'pip._internal'



La versione di pip3 in dotazione in ubuntu (9.1) non è adeguata, bisogna scaricarsi uno script per la re-installazione e quindi reinstallarlo come super-utente, i comandi da dare e l'outupt che si avrà se le cose vanno bene, lo scarico:
CITAZIONE
:~$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1622k 100 1622k 0 0 45115 0 0:00:36 0:00:36 --:--:-- 79437


ahm ... curl NON È installato di default in Ubuntu 18.04, nel caso dare prima : sudo apt install curl
dopo esservi scaricati codice dare :
CITAZIONE
:~$ sudo python3 get-pip.py --force-reinstall
The directory '/home/nuzzo/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/home/nuzzo/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Collecting pip
Downloading https://files.pythonhosted.org/packages/c2...y3-none-any.whl (1.3MB)
100% |████████████████████████████████| 1.3MB 172kB/s
Installing collected packages: pip
Found existing installation: pip 9.0.1
Uninstalling pip-9.0.1:
Successfully uninstalled pip-9.0.1
Successfully installed pip-18.1



... appena aggiornato il mio pip3 ci ho riprovato ... tz! tz! ... mica è così semplice!
CITAZIONE
:~$ pip3 install --user wxPython

... UNMAREDIROBA ...
wxbuild.main(wxDir(), build_options) File "/tmp/pip-install-s5_5x3v1/wxPython/buildtools/build_wxwidgets.py", line 375, in main "Error running configure")
... UNALTROMAREDIROBA ...



Le wxWidget richiedono un bel po' di librerie di sviluppo delle GTK ed altro in ubuntu/debian ... la ricerca è stata estenuante, ma alla fine si può riassumere in questo comando
CITAZIONE
sudo apt install make gcc libgtk-3-dev libwebkitgtk-dev libwebkitgtk-3.0-dev libgstreamer-gl1.0-0 freeglut3 freeglut3-dev python-gst-1.0 python3-gst-1.0 libglib2.0-dev ubuntu-restricted-extras libgstreamer-plugins-base1.0-dev

Per fortuna, gli sviluppatori sono più bravi di me, molta roba l'avevo già ed apt se ne accorge :) ...comunque, bel po' di roba, vero? Copiatelo come sta, funzia ;)

Finalmente il nuovo tentativo ha successo :
CITAZIONE
:~$ pip3 install --user wxPython
Collecting wxPython
Using cached https://files.pythonhosted.org/packages/dd...on-4.0.3.tar.gz
Requirement already satisfied: PyPubSub in ./.local/lib/python3.6/site-packages (from wxPython) (4.0.0)
Requirement already satisfied: six in /usr/lib/python3/dist-packages (from wxPython) (1.11.0)
Building wheels for collected packages: wxPython
Running setup.py bdist_wheel for wxPython ... done
Stored in directory: /home/nuzzo/.cache/pip/wheels/f5/dc/99/ee2a2d2c76e7e2d24a6e6d8750f3907b2e77dbf31d61a03a59
Successfully built wxPython
Installing collected packages: wxPython
Successfully installed wxPython-4.0.3



Si attende un po' la composizione delle librerie ma dopo un paio di solitari ho potuto veder funzionare una micro-applicazione di esempio utilizzante le wx.

... chissà, magari serve a qualcuno :D

Edited by nuzzopippo - 6/12/2018, 07:57
 
Web  Top
0 replies since 28/11/2018, 20:13   99 views
  Share