Error in my first Qt5 program
-
Hi all,
I have installed Qt5 and python 3.6.0. I am unable to run a simple hello world program.
See below my error:
from PyQt5.QtWidgets import QApplication, QLabel
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/PyQt5/QtWidgets.so, 2): Symbol not found: __os_activity_create
Referenced from: /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/PyQt5/Qt/lib/QtCore.framework/Versions/5/QtCore (which was built for Mac OS X 10.12)
Expected in: /usr/lib/libSystem.B.dylib
in /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/PyQt5/Qt/lib/QtCore.framework/Versions/5/QtCoreCan someone please help. I think there is a problem with my Qt5 Install on my Mac OS X El Capitan. Can someone please help me with the right commands to install Qt5 or Qt4? Appreciate your help! :)
-
Hi and welcome to devnet,
How did you install both ?
Since you are using Python and PyQt, the most simple way is to create a virtual environment using python's
virtualenv
, activate it and then callpip install PyQt5
. -
Hi Thanks for your help!
Yes I did create a venv folder and I think I ran the above command to install PyQt5. Do I have to place my .py file inside that folder and run it?Nitin.
-
No, you have to ensure that you properly activated the virtual environment before installing anything in it and also before running your application.
From the looks of it, you have rather installed PyQt5 system wide.
-
I tried to install PyQt5 all over again, activate it and when I tried to run the program I got the following error:
(qtproject) (base) Nitins-MacBook-Pro:pluralsight Nitin$ python3 structure.py
Traceback (most recent call last):
File "structure.py", line 1, in <module>
from PyQt5.QtWidgets import *
ModuleNotFoundError: No module named 'PyQt5.QtWidgets'Do you know how I can import these modules?
Nitin
-
@Mikenitin92 said in Error in my first Qt5 program:
from PyQt5.QtWidgets import *
Works for me (I installed PyQt5 using pip3 system wide), if it does not for you then you either did not install PyQt5 correctly or you're not using the virtual environment where you installed PyQt5.
Did you consider what @SGaist wrote in hes last post in this thread?
-
Hi all,
I have done the following steps:
- I already have Python 3.6.0 installed system wide.
- Created a new virtual environment and activated it
- pip install virtualenv
- virtualenv nitin_venv
- cd nitin_venv
- source bin/activate - Install PyQt5
- pip install PyQt5
- Placed a . py file in my virtual environment(nitin_venv folder) and tried to execute it
- python3 ~/.nitin_venv/sample.py
Then I received the import error, not sure where I am doing it wrong.
-
Might be a silly question but did you check that
python3
is really the one from your virtual environment ? -
Run
which python3
in the terminal you use to execute your script. -
That gave me ~/.nitin_venv/bin/python. So, I think python is from my virtual environment. Also, Do I have to run the my python program from my virtual environment?
-
The file doesn't need to be in there, the virtual environment is there to provide you with the dependencies you need in a controlled fashion.
Can you show the code you are using to test that ?
-
Sure.
Here it is!from PyQt5.QtWidgets import *
import sys
app = QApplication([])
label = QLabel('Hello world!')
label.show()
app.exec_() -
@Mikenitin92
If your problem seems to be something about not being to find libraries such that Qt apps can't be run then this probably has nothing to do with it. But I don't think you can write a Qt app to just "display a label nowhere" as per your code (you need a window or a dialog etc.). Did you get this code from somewhere/do you have a problem when it runs, or are you still at the ImportError just trying to get going? -
Hi,
I have tested with a new sample file which is:
print ("Hi")
from PyQt5.QtWidgets import *And this is the output:
Hi
Traceback (most recent call last):
File "/Users/Nitin/PycharmProjects/pluralsight/nitin_venv/lib/test.py", line 2, in <module>
from PyQt5.QtWidgets import *
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/PyQt5/QtWidgets.so, 2): Symbol not found: __os_activity_create
Referenced from: /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/PyQt5/Qt/lib/QtCore.framework/Versions/5/QtCore (which was built for Mac OS X 10.12)
Expected in: /usr/lib/libSystem.B.dylib
in /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/PyQt5/Qt/lib/QtCore.framework/Versions/5/QtCore -
@Mikenitin92 said in Error in my first Qt5 program:
import sys
app = QApplication([])Unrelated but to be clean, it should be
sys.argv
as parameter of QApplication.What version of PyQt do you have installed ?
Did you try to uninstall your system version of PyQt and re-install it in your virtual environment ? -
Hello,
I have PyQt5. I have deleted the virtual folder and created it again, activated and installed PyQt5. Did I do it right?
-
Yes you did, however PyQt5 is the package name, not its version. However since you just now installed it, it should be the latest version available.
Did you also uninstall the version you have installed system wide ?
-
I don't think I have installed PyQt5 system wide. Do you know how I can check if it is installed system wide?
-
@Mikenitin92 said in Error in my first Qt5 program:
/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/PyQt5/QtWidgets.so
That path makes me think that it is since it's the OS provided Python framework.