You are not logged in.
I try to achieve a tutorial pyqt but some reason, i can't succeed to compile without
having the message
/usr/bin/python3.4 /home/xxxxxx/PycharmProjects/NewOne/Tryagain.py
Traceback (most recent call last):
File "/home/xxxxxx/PycharmProjects/NewOne/Tryagain.py", line 3, in <module>
from form import Ui_Dialog
File "/home/xxxxxx/PycharmProjects/NewOne/form.py", line 3, in <module>
from form import Ui_Dialog
ImportError: cannot import name 'Ui_Dialog'
Process finished with exit code 1
Last edited by j2lapoin (2015-08-11 20:49:12)
Offline
Are you sure that pyqt4 is installed on your system? Check the output of pacman -Ss pyqt
Also, Be aware that that tutorial is written in Python2.
def OK(self):
print 'OK pressed.'
Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. -- Alan Turing
---
How to Ask Questions the Smart Way
Offline
Thanks for the information, I been looking for pyqt apckages (warning: pyqt4-common-4.11.4-1 is up to date -- reinstalling)(python2-pyqt4-4.11.4-1)
they have been installed. But still the same error. I'm wonder if it could be a file name ui_dialog or sort that was somewhere missing. Thanks. maybe it's Qt fault.
Are you sure that pyqt4 is installed on your system? Check the output of pacman -Ss pyqt
Also, Be aware that that tutorial is written in Python2.def OK(self): print 'OK pressed.'
Offline
Can you post your form.py that you generated from form.ui using pyuic4 ?
Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. -- Alan Turing
---
How to Ask Questions the Smart Way
Offline
both form do the same thing. the one on the tutorial site and mine. i send them.
Offline
the first that i must attached to my file...
import sys
from PyQt4 import QtCore, QtGui
from form import Ui_Dialog
class MyDialog(QtGui.QDialog):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.ui = Ui_Dialog()
self.ui.setupUi(self)
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
myapp = MyDialog()
myapp.show()
sys.exit(app.exec_())
my file after conversion
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'form.ui'
#
# Created by: PyQt4 UI code generator 4.11.4
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName(_fromUtf8("Dialog"))
Dialog.resize(400, 300)
self.pushButton = QtGui.QPushButton(Dialog)
self.pushButton.setGeometry(QtCore.QRect(160, 250, 88, 27))
self.pushButton.setObjectName(_fromUtf8("pushButton"))
self.label = QtGui.QLabel(Dialog)
self.label.setGeometry(QtCore.QRect(140, 220, 131, 16))
self.label.setObjectName(_fromUtf8("label"))
self.label_2 = QtGui.QLabel(Dialog)
self.label_2.setGeometry(QtCore.QRect(120, 40, 171, 151))
self.label_2.setText(_fromUtf8(""))
self.label_2.setPixmap(QtGui.QPixmap(_fromUtf8("../../Downloads/ux.jpg")))
self.label_2.setObjectName(_fromUtf8("label_2"))
self.retranslateUi(Dialog)
QtCore.QMetaObject.connectSlotsByName(Dialog)
def retranslateUi(self, Dialog):
Dialog.setWindowTitle(_translate("Dialog", "Dialog", None))
self.pushButton.setText(_translate("Dialog", "PushButton", None))
self.label.setText(_translate("Dialog", "This is my first label", None))
Offline
Using your file, on my system:
ewaller@turing ~/test 1017 %python
Python 3.4.3 (default, Mar 25 2015, 17:13:50)
[GCC 4.9.2 20150304 (prerelease)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from form import Ui_Dialog
>>> quit()
ewaller@turing ~/test 1018 %python2
Python 2.7.10 (default, May 26 2015, 04:16:29)
[GCC 5.1.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from form import Ui_Dialog
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "form.py", line 9, in <module>
from PyQt4 import QtCore, QtGui
ImportError: No module named PyQt4
>>> import form
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "form.py", line 9, in <module>
from PyQt4 import QtCore, QtGui
ImportError: No module named PyQt4
>>> quit()
ewaller@turing ~/test 1019 %pacman -Qs pyqt
local/pyqt4-common 4.11.4-1
Common PyQt files shared between python-pyqt4 and python2-pyqt4
local/python-pyqt4 4.11.4-1
A set of Python 3.x bindings for the Qt toolkit
ewaller@turing ~/test 1020 %ls -l
total 16
-rw-r--r-- 1 ewaller ewaller 5330 Aug 10 19:30 form.py
-rw-r--r-- 1 ewaller ewaller 5168 Aug 10 19:34 form.pyc
drwxr-xr-x 2 ewaller ewaller 16 Aug 10 19:32 __pycache__
ewaller@turing ~/test 1021 %
Edit: Let's try that again
Edit2: TLDR, it works for Python3, not for Python2. That is because I've only the Python3 version of PyQt installed.
Last edited by ewaller (2015-08-11 02:45:06)
Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. -- Alan Turing
---
How to Ask Questions the Smart Way
Offline
from my side nothing has changed:
/usr/bin/python2.7 /home/j2lapoin/PycharmProjects/NewOne/form.py
Traceback (most recent call last):
File "/home/j2lapoin/PycharmProjects/NewOne/form.py", line 3, in <module>
from form import Ui_Dialog
File "/home/j2lapoin/PycharmProjects/NewOne/form.py", line 3, in <module>
from form import Ui_Dialog
ImportError: cannot import name Ui_Dialog
Process finished with exit code 1
Wonder if that matter that the version is 2 instead of 3. I mean my problem seem more likely to be a package missing, but maybe you will prove me wrong.
Offline
Is your current directory /home/j2lapoin/PycharmProjects/NewOne/ when you run that command? It has to be, or form.py has to be in your Python PATH (unlikely)
Well, first, a sanity check. Do a ls -l just to prove that you are in the right directory
Then, do a pacman -Qs pyqt and let's see what pyqt packages you've.
Then, run the Python3 interpreter -- python and then do an import form
Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. -- Alan Turing
---
How to Ask Questions the Smart Way
Offline
Is your current directory /home/j2lapoin/PycharmProjects/NewOne/ when you run that command? It has to be, or form.py has to be in your Python PATH (unlikely)
Well, first, a sanity check. Do a ls -l just to prove that you are in the right directory
[j2lapoin@localhost NewOne]$ pwd /home/j2lapoin/PycharmProjects/NewOne [j2lapoin@localhost NewOne]$ ls -l total 116 -rw-r--r-- 1 j2lapoin users 489 Aug 10 20:45 example1.py -rw-r--r-- 1 j2lapoin users 696 Aug 10 20:47 example2.py -rw-r--r-- 1 j2lapoin users 935 Aug 10 20:55 example3.py -rw-r--r-- 1 j2lapoin users 2154 Aug 10 22:48 form.py -rw-r--r-- 1 j2lapoin users 3018 Aug 10 22:48 form.pyc -rw-r--r-- 1 j2lapoin users 1290 Aug 10 18:44 form.ui -rw-r----- 1 j2lapoin users 2578 Aug 10 21:07 helloworld2.py -rw-r----- 1 j2lapoin users 3093 Aug 10 21:05 helloworld.py -rw-r--r-- 1 j2lapoin users 1939 Aug 10 19:01 NewExample.py drwxr-xr-x 2 j2lapoin users 4096 Aug 10 19:31 __pycache__ -rw-r--r-- 1 j2lapoin users 2420 Aug 10 19:52 Tryagain.py -rw-r--r-- 1 j2lapoin users 57694 Aug 10 20:52 web.png -rw-r--r-- 1 j2lapoin users 856 Aug 10 20:54 web.xcf
Then, do a pacman -Qs pyqt and let's see what pyqt packages you've.
[j2lapoin@localhost NewOne]$ pacman -Qs pyqt local/pyqt4-common 4.11.4-1 Common PyQt files shared between python-pyqt4 and python2-pyqt4 local/python-pyqt4 4.11.4-1 A set of Python 3.x bindings for the Qt toolkit local/python2-pyqt4 4.11.4-1 A set of Python 2.x bindings for the Qt toolkit
Then, run the Python3 interpreter -- python and then do an import form
don't understand this request, i mean what you want. do you want me to add import form and to compile with python 3.4?
Offline
Like this:
ewaller@turing ~/test 1024 %python
Python 3.4.3 (default, Mar 25 2015, 17:13:50)
[GCC 4.9.2 20150304 (prerelease)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import form
>>> dir(form)
['QtCore', 'QtGui', 'Ui_Dialog', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_encoding', '_fromUtf8', '_translate']
>>> quit()
ewaller@turing ~/test 1025 %
Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. -- Alan Turing
---
How to Ask Questions the Smart Way
Offline
Python 3.4.3 (default, Mar 25 2015, 17:13:50)
[GCC 4.9.2 20150304 (prerelease)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import form
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/j2lapoin/PycharmProjects/NewOne/form.py", line 3, in <module>
from form import Ui_Dialog
ImportError: cannot import name 'Ui_Dialog'
>>> dir(form)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'form' is not defined
>>>
Offline
ewaller@turing ~/test 1025 %ll
total 16
-rw-r--r-- 1 ewaller ewaller 5330 Aug 10 19:30 form.py
-rw-r--r-- 1 ewaller ewaller 5168 Aug 10 19:34 form.pyc
drwxr-xr-x 2 ewaller ewaller 16 Aug 10 19:32 __pycache__
ewaller@turing ~/test 1026 %
Why is my form.py more than twice the size of yours?
does your form.py not look like this?
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'form.ui'
#
# Created by: PyQt4 UI code generator 4.11.4
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName(_fromUtf8("Dialog"))
Dialog.resize(400, 300)
self.pushButton = QtGui.QPushButton(Dialog)
self.pushButton.setGeometry(QtCore.QRect(160, 250, 88, 27))
self.pushButton.setObjectName(_fromUtf8("pushButton"))
self.label = QtGui.QLabel(Dialog)
self.label.setGeometry(QtCore.QRect(140, 220, 131, 16))
self.label.setObjectName(_fromUtf8("label"))
self.label_2 = QtGui.QLabel(Dialog)
self.label_2.setGeometry(QtCore.QRect(120, 40, 171, 151))
self.label_2.setText(_fromUtf8(""))
self.label_2.setPixmap(QtGui.QPixmap(_fromUtf8("../../Downloads/ux.jpg")))
self.label_2.setObjectName(_fromUtf8("label_2"))
self.retranslateUi(Dialog)
QtCore.QMetaObject.connectSlotsByName(Dialog)
def retranslateUi(self, Dialog):
Dialog.setWindowTitle(_translate("Dialog", "Dialog", None))
self.pushButton.setText(_translate("Dialog", "PushButton", None))
self.label.setText(_translate("Dialog", "This is my first label", None))# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'form.ui'
#
# Created by: PyQt4 UI code generator 4.11.4
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName(_fromUtf8("Dialog"))
Dialog.resize(400, 300)
self.pushButton = QtGui.QPushButton(Dialog)
self.pushButton.setGeometry(QtCore.QRect(160, 250, 88, 27))
self.pushButton.setObjectName(_fromUtf8("pushButton"))
self.label = QtGui.QLabel(Dialog)
self.label.setGeometry(QtCore.QRect(140, 220, 131, 16))
self.label.setObjectName(_fromUtf8("label"))
self.label_2 = QtGui.QLabel(Dialog)
self.label_2.setGeometry(QtCore.QRect(120, 40, 171, 151))
self.label_2.setText(_fromUtf8(""))
self.label_2.setPixmap(QtGui.QPixmap(_fromUtf8("../../Downloads/ux.jpg")))
self.label_2.setObjectName(_fromUtf8("label_2"))
self.retranslateUi(Dialog)
QtCore.QMetaObject.connectSlotsByName(Dialog)
def retranslateUi(self, Dialog):
Dialog.setWindowTitle(_translate("Dialog", "Dialog", None))
self.pushButton.setText(_translate("Dialog", "PushButton", None))
self.label.setText(_translate("Dialog", "This is my first label", None))# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'form.ui'
#
# Created by: PyQt4 UI code generator 4.11.4
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName(_fromUtf8("Dialog"))
Dialog.resize(400, 300)
self.pushButton = QtGui.QPushButton(Dialog)
self.pushButton.setGeometry(QtCore.QRect(160, 250, 88, 27))
self.pushButton.setObjectName(_fromUtf8("pushButton"))
self.label = QtGui.QLabel(Dialog)
self.label.setGeometry(QtCore.QRect(140, 220, 131, 16))
self.label.setObjectName(_fromUtf8("label"))
self.label_2 = QtGui.QLabel(Dialog)
self.label_2.setGeometry(QtCore.QRect(120, 40, 171, 151))
self.label_2.setText(_fromUtf8(""))
self.label_2.setPixmap(QtGui.QPixmap(_fromUtf8("../../Downloads/ux.jpg")))
self.label_2.setObjectName(_fromUtf8("label_2"))
self.retranslateUi(Dialog)
QtCore.QMetaObject.connectSlotsByName(Dialog)
def retranslateUi(self, Dialog):
Dialog.setWindowTitle(_translate("Dialog", "Dialog", None))
self.pushButton.setText(_translate("Dialog", "PushButton", None))
self.label.setText(_translate("Dialog", "This is my first label", None))
Last edited by ewaller (2015-08-11 03:36:00)
Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. -- Alan Turing
---
How to Ask Questions the Smart Way
Offline
mine has the quote from the author of pyqt tutoring. based on the tutorial we must add this section above.
import sys
from PyQt4 import QtCore, QtGui
from form import Ui_Dialog
class MyDialog(QtGui.QDialog):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.ui = Ui_Dialog()
self.ui.setupUi(self)
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
myapp = MyDialog()
myapp.show()
sys.exit(app.exec_())
Offline
That file is supposed to be gui.py
Running the file does nothing. Create a new file called gui.py
import sys
from PyQt4 import QtCore, QtGui
from form import Ui_Dialog
class MyDialog(QtGui.QDialog):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.ui = Ui_Dialog()
self.ui.setupUi(self)if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
myapp = MyDialog()
myapp.show()
sys.exit(app.exec_())
form.py is generated using the pyuic4 tool. You should have two .py files, gui.py and form.py. It looks like you overwrote form.py with what should be in gui.py. When you load form.py, it tries to import form.py -- that won't work.
Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. -- Alan Turing
---
How to Ask Questions the Smart Way
Offline
Exactly brillant! I did put the code into gui.py and that finally resolve my problem. Thank you for your help and [solved] is this problem.
That file is supposed to be gui.py
the tutorial you linked wrote:Running the file does nothing. Create a new file called gui.py
import sys
from PyQt4 import QtCore, QtGui
from form import Ui_Dialog
class MyDialog(QtGui.QDialog):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.ui = Ui_Dialog()
self.ui.setupUi(self)if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
myapp = MyDialog()
myapp.show()
sys.exit(app.exec_())form.py is generated using the pyuic4 tool. You should have two .py files, gui.py and form.py. It looks like you overwrote form.py with what should be in gui.py. When you load form.py, it tries to import form.py -- that won't work.
Offline