Ubuntu 11.04-hez létezik repository-ból telepíthető PyQt4 Python3-ra?
Mit kellene keresnem.
A sima python-qt4 csomag a Python2.x-re telepíti a PyQt4-et.
python3-qt4 csomagot meg nem találok.
Tudom letöltöm a forrást és telepítem magamnak. De akkor azt nem lehet "apt-get update/upgrade"-el frissíteni. Semmit nem akarok "kézzel" telepíteni, ha nem elkerülhetetlen.
- 2417 megtekintés
Hozzászólások
Szerintem még nem készültek el a Python3-as támogatással.
Én PySide-dal ismerkedtem, annak roadmap oldalán azt írták, hogy a portolás folyamatban.
És gondolom azért hasonló cipőben jár a két projekt.
- A hozzászóláshoz be kell jelentkezni
Windowson működik.
Egymás után telepítem a python-3.2.msi, majd a PyQt-Py3.2-x86-gpl-4.8.4-1.exe programokat és minden megy szépen.
--
Tertilla; Tisztelem a botladozó embert és nem rokonszenvezem a tökéletessel! Hagyd már abba!; Dropbox
- A hozzászóláshoz be kell jelentkezni
Nem ez a gond. Ha jól emlékszem, a PyQt a 3rd party modulok között élen járt a Python3 támogatással, már a Python3 megjelenése után nem sokkal volt hozzá PyQt is. Inkább az lehet a gond vele, hogy csak GPL vagy commercial licenc alatt használható, azaz vagy a programod is GPL alatt adod ki, vagy fizetned kell a Riverbank Computing Ltd-nek. Tehát LGPL változat asszem nincs.
Emellett a mai napig a legjobb és legteljesebb Qt támogatást a PyQt biztosítja. A Nokia sem akart saját bindig-ot fejleszteni eredetileg, mert dupla munka és évekig tart normális módon megcsinálni, ezért meg akartak egyezni a Riverbankkel, hogy az övéket használhassák. Ez licenc okok miatt nem sikerült, ekkor indította el a Nokia jobb híján a saját fejlesztést PySide néven.
- A hozzászóláshoz be kell jelentkezni
A Qt-t használva is írhatsz zárt kódú programot. Csak ha magát a Qt-t módosítod, akkor annak a kódját is közzé kell tenni.
De itt nem erről van szó. Pythonban eleve nyílt a kód. Tudom lehet a fordítani a kódot, meg a py2exe-vel is bűvészkedni.
Nem nagyon mélyedtem még el a Pythonban, de most szeretnék. Eddig Python 2-vel és Tkinterrel szórakoztam. De szeretnék komolyabb kinézetű programot is készíteni és ehhez a PyQt4 szerintem tökéletes lenne. De mivel ez már a Python3-at is támogatja, és feltehetőleg 1-2 éven belül az lesz az alap Python rendszer, így jobb lenne a Python3 PyQt4 párossal folytatni az ismerkedést.
Sajnos csak Windowson sikerült együtt telepítenem. Én viszont szívesebben használnám Ubuntun.
--
Tertilla; Tisztelem a botladozó embert és nem rokonszenvezem a tökéletessel! Hagyd már abba!; Dropbox
- A hozzászóláshoz be kell jelentkezni
Ez esetben nem lehet jarhato ut az, hogy a python2.6.x/dist-packages-bol atlinkeled a python3.0.x/dist-packages-be a libet?
Nem tudom mennyire eszi meg a dolgot a python, de igy frissulne csomagkezelovel.
Ha ez nem mukodik, akkor meg irsz egy szkriptet, ami szinkronizalja a ket mappat, ha a pyqt egy-egy fajla megvaltozik.:)
Vagy ha a binding miatt tenyleg kell plusz munka, akkor berakod azt is a szkriptbe.
De tenyleg kene csomagban lennie python3-qt4-nek, ha mukodik rendesen..
- A hozzászóláshoz be kell jelentkezni
A lehetőségeid amíg elkészül a Debian/Ubuntu python3-qt4 deb (mert még nincs):
1. fordítasz magadnak
2. telepítesz egy olyan disztribet, amiben már van (Arch, Fedora, Uhu, stb.)
3. használod Windowson
4. használod a Python2-es csomagokat
Pyqt szempontból mindegy, hogy a 2-es vagy 3-as Pythont használod, ha az újabb API 2-t állítod be.
(A Pyside eleve csak ezt támogatja.)
Amúgy szomorú, hogy mennyit tökölnek ezen a csomagon a karbantartók :(
- A hozzászóláshoz be kell jelentkezni
Köszönöm szépen. A 2-es vagy 4-es lehetőség (ebben a sorrendben) tetszik.
--
Tertilla; Tisztelem a botladozó embert és nem rokonszenvezem a tökéletessel! Hagyd már abba!; Dropbox
- A hozzászóláshoz be kell jelentkezni
Nem a Qt lincencéről beszéltem, hanem a PyQt-éről. A PyQt egy önálló szoftver, amely független a Python-tól és a Qt-től is, saját licenc-szel. Egy licenc pedig nem csak arról szól, hogy fizikailag láthatod-e a forráskódot, hanem arról is, hogy milyen módon használhatod fel a saját programodban.
Valóban írhatsz zárt forráskódú szoftvert Qt-vel, de azért, mert LGPL licenc alá helyezték pár éve. A PyQt nem ilyen, itt olvashatsz róla. Kiemelném a következő két mondatot:
PyQt, unlike Qt, is not available under the LGPL.
If you are unable to distribute your code under the terms of the GPL then you must purchase a commercial license.
Tehát vagy GPL-es lesz a te programod is, vagy fáradj a kasszához. :)
- A hozzászóláshoz be kell jelentkezni
Vagy Pyside-ot használ, egyelőre Python2-vel. Előbb-utóbb annak is lesz Python3 portja.
- A hozzászóláshoz be kell jelentkezni
Persze. Amúgy én is csak nézek, hogy mennyire nem akarnak a modulfejlesztők Python3-ra portolással foglalkozni. Lassú lesz a migráció mindenhol, bár van még rá idejük bőven.
- A hozzászóláshoz be kell jelentkezni
Ha mégis kedved támad fordítgatni:
http://www.python.org/download/releases/
A legújabb Python-t letöltöd és felteszed.(3.2.1-gyel néztem és működött)
Felteszed a SIP-et.
Itt lesz egy configure.py fájl amit python3-mal fordíts.
http://www.riverbankcomputing.com/software/sip/download
Ezután jöhet a PyQt4
http://www.riverbankcomputing.co.uk/software/pyqt/download
Itt is python3-mal a configure.py fájlt.
Úgy emlékszem, hogy "libxext-dev" csomag is kellett hozzá.
Ha kell segítség szólj!
I am the god of hellfire, and I bring you...
- A hozzászóláshoz be kell jelentkezni
Köszönöm szépen a részletes választ.
Közben"koncepciót" váltottam. :-)
PySide egyelőre a 3-as Pythonhoz nincs, ezért maradok a Python 2.7.x-nél és PySide-ot vagy PyQt4-et használok, ebben a sorrendben, attól függően, hogy mi van telepítve. A Python kódban előbb a pyside-ból importálom a szükséges modulokat és try - except-tel kezelem a kivételt, sikertelenség esetében pedig a PyQt4-ből próbálom a modulokat importálni.
Hosszú út áll előttem mire beledolgozom magam.
try:
from PySide.QtCore import *
from PySide.QtGui import *
except ImportError:
try:
from PyQt4 import *
from PyQt4.QtCore import *
from PyQt4.QtGui import *
except ImportError:
print("Nincs sem PySide, sem PyQt4 telepítve! \n")
raw_input()
sys.exit(0)
--
Tertilla; Tisztelem a botladozó embert és nem rokonszenvezem a tökéletessel! Hagyd már abba!; Dropbox
- A hozzászóláshoz be kell jelentkezni
A new style signal, slot, property neveinek inkompatibilitása miatt inkább így javaslom (az import * használata egyébként sem szép):
try: from PySide import QtCore from PySide import QtGui from PySide.QtCore import Property as pyqtProperty from PySide.QtCore import Signal as pyqtSignal from PySide.QtCore import Slot as pyqtSlot except ImportError: import sip sip.setapi('QDate', 2) sip.setapi('QString', 2) sip.setapi('QVariant', 2) from PyQt4 import QtCore from PyQt4 import QtGui from PyQt4.QtCore import pyqtProperty from PyQt4.QtCore import pyqtSignal from PyQt4.QtCore import pyqtSlot
szerk: nem tudom hogy kell megőriztetni az indentálást :(
- A hozzászóláshoz be kell jelentkezni
Köszönöm ezt nagyon jó, hogy leírtad.
Én még egy ilyen mintát találtam:
try:
from PyQt4.QtCore import QSocketNotifier, QObject, SIGNAL, QTimer, QCoreApplication
from PyQt4.QtCore import QEventLoop
except ImportError:
from PySide.QtCore import QSocketNotifier, QObject, SIGNAL, QTimer, QCoreApplication
from PySide.QtCore import QEventLoop
Egyelőre tanuló fázisban vagyok és kódokból is próbálok tanulni.
Ha "code" "/code" közé teszed (csak idézőjel helyett szögletes zárójelben), akkor megőrzi a formázást.
--
Tertilla; Tisztelem a botladozó embert és nem rokonszenvezem a tökéletessel! Hagyd már abba!; Dropbox
- A hozzászóláshoz be kell jelentkezni