Error in my first Qt5 program
-
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.
-
A bit late to answer but I just found this, have a similar error, and might be of some help. Here is my error:
Traceback (most recent call last): File "bimpy/interface/bStackBrowser.py", line 6, in <module> from PyQt5 import QtGui, QtCore, QtWidgets ImportError: dlopen(/Users/cudmore/Sites/bImPy/bImPy_env/lib/python3.7/site-packages/PyQt5/QtGui.abi3.so, 2): Symbol not found: _futimens Referenced from: /Users/cudmore/Sites/bImPy/bImPy_env/lib/python3.7/site-packages/PyQt5/Qt/lib/QtCore.framework/Versions/5/QtCore (which was built for Mac OS X 10.13) Expected in: /usr/lib/libSystem.B.dylib in /Users/cudmore/Sites/bImPy/bImPy_env/lib/python3.7/site-packages/PyQt5/Qt/lib/QtCore.framework/Versions/5/QtCore
I am running on macOS Sierra (10.12.6) so the 'built for Mac OSX 10.13' part of the error makes sense...
I was able to get rid of this by downgrading PyQt from 5.14.1 to 5.13.0
Install a new virtual environment
# create a virtual environment in folder 'myenv' python3 -m venv myenv # activate the virtual environment source myenv/bin/activate
Check both pip and python are running rom it
which python # returns: /Users/cudmore/Sites/bImPy/myenv/bin/python which pip # returns: /Users/cudmore/Sites/bImPy/myenv/bin/pip
Install PyQt == 5.13.0
pip install PyQt==5.13.0 # I also needed PyQtChart==5.13.0 with pip install PyQtChart==5.13.0
Check the version of PyQt you install
pip freeze | grep PyQt
Gave me
PyQt5==5.13.0 PyQt5-sip==12.7.1 PyQtChart==5.13.0
Alternatively, if you want to downgrade to PyQt==5.13.0 in an existing install, simply do
pip install PyQt==5.13.0 --upgrade
If that doesn't work, first uninstall then reinstall
# just to be safe, first uninstall pip uninstall PyQt # then install specific version pip install PyQt==5.13.0
This build error is on the Qt dev end. I am needing to pay attention to this because me and my users are spread across macOS: 10.14, 10.15, 10.16, 10.17. I also have users on Windows 7/10 and this does not seem to be an issue?
Hope this helps...