I'm running Python 2.6.6 on Ubuntu 10.10.
I understand that we can import a module and bind that module to a different name, e.g.
import spam as eggs
also,
from eggs import spam as foo
My problem is that when running the PySide examples, the following import code does not run:
import PySide as PyQt4
from PyQt4 import QtCore, QtGui
It generates an import error:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named PyQt4
Clearly, according to the Python interpreter the above code is incorrect, my question is why is it incorrect or rather why doesn't this work?
import and from are a special syntax.
They look for a module name, which means a file in sys.path which starts with the module name.
And it seems like you don't have PyQt4 installed, so it will fail.
The fact that you have a variable called PyQt4 in your namespace after running import PySide as PyQt4 does not change anything, Python is still looking for an actual module called PyQt4 when you do from PyQt4 import QtCore, QtGui.
Try doing
import PySide as PyQt4
QtCore = PyQt4.QtCore
QtGui = PyQt4.QtGui
or
import PySide as PyQt4
from PySide import QtCore, QtGui
That should be equivalent.
I just installed PySide and was doing a tutorial where all the examples used PyQt4. I got tired of changing the imports from PyQt4 to PySide so I just made a symlink in my site-packages, using the following steps:
1) There's surely a better way but I found where my python packages were installed by opening a shell and running python, then at the interactive interpreter typed:
>>> import sys
>>> print sys.path
2) I then found PySide in one of the directories and cd'd to it (n.b. It's at /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages if you're using the macports PySide install for python 2.7 on Mac OSX Leopard 10.5.8).
3) Then I made a symlink with ln, in my case I had to use sudo:
sudo ln -s PySide PyQt4
That's it, now I can just use:
from PyQt4 import QtGui
as normal - happy days!
Obviously, if you ever want to install PyQt4 you should rm the PyQt4 symlink first.
Another caveat: What I've described above may well be wrong/bad in many ways - I am no expert at Python installs but so far it's ok for me. YMMV so use at your own risk. Hopefully someone will comment soon to say "no, very bad!" or ideally "yeah don't sweat it, we cool.."
Related
I'm trying to make an vocabtrainer for myself to get better in english, cause I suck. To achieve this, I'm trying to make a GUI with PyQt5 to expand my programming experience too :). But somehow I can't import the QtWebEngineWidget...
This is my code:
import PyQt5.QtWidgets as pyqtW
import PyQt5.QtGui as pyqtG
import PyQt5.QtCore as pyqtC
from PyQt5.QtWebEngineWidgets import *
import sys
class VocabTrainer:
def __init__(self):
self.main = pyqtW.QApplication([])
self.window = pyqtW.QWidget()
self.prepareWindow()
sys.exit(self.main.exec_())
def prepareWindow(self):
"""
Set's the attributes of the window.
"""
# window settings
self.window.resize(250, 100)
self.window.show()
def openPons(self):
"""
Opens the website of pons to be able to translate words.
"""
pass
test = VocabTrainer()
My IDE (PyCharm) warns me that it can't find the reference of PyQt5.QtWebEngineWidgets and if I run this code, I'll get this error message:
Traceback (most recent call last):
File "/A/little/path/VocabTrainer.py", line 12, in <module>
from PyQt5.QtWebEngineWidgets import *
ImportError: libQt5Quick.so.5: cannot open shared object file: No such file or directory
Process finished with exit code 1
I've installed the modules with the following commands:
pip install pyqt5
pip install pyqtwebengine
I've also tried to reinstall the modules but without success.
Python-Version: 3.8.1
OS: Arch Linux
In the case of ArchLinux, having the most up-to-date packages, I generally recommend using the repository packages (IMHO Arch Linux is a good laboratory to test the new functionalities :-)). Considering the above, I recommend installing pyq5 and pyqtwebengine by running the following:
sudo pacman -S python-pyqt5 python-pyqtwebengine
You must also change the python that pycharm uses to the system.
I have PyQt5 Installed and I created a GUI and edited it using Sublime Text, Now I want to use PyCharm and I saw posts that you don't have to configure PyQt5, it is automatically detected by PyCharm.
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import *
from PyQt5.QtGui import QPixmap
from mainpy import kitcode
PyQt5, QtCore, QtGui, QtWidgets, PyQt5.QtWidgets, PyQt5.QtGui, QPixmap, mainpy and kitcode are all in red underline.
And when I run it, I get the error
Traceback (most recent call last):
File "C:/Users/username/Desktop/folder/PythonThesis/mainpy.py", line 9, in <module>
from PyQt5 import QtCore, QtGui, QtWidgets
ImportError: No module named 'PyQt5'
Process finished with exit code 1
any help would be appreciated and sorry if this is basic, I am still new to python. Thank you very much.
did you fix this problem?
You may need to tell PyCharm which Python do you want to use for your current project. You can do this by configuring Python interpreter from Settings/Preferences/Project Interpreter. Be careful to find the proper Python with PyQt5. You can find more information on the official website. An extra tip is you can edit run configuration, including Python interpreter for the next run, before running projects by using the shortcut Shift+Alt+F10.
When trying to run a simple test of a database.py:
import pymysql.cursor
from PyQt5.QtCore import pyqtSignal, QObject, QTimer
This the output in the Exceptions tab of WingWare IDE:
File "c:\MyProjects\___MECHANIKOS\UltraSimpleSarlaccPit\01_UltraSimpleSarlaccPit.py", line 1, in <module>
from database import Database
 File "c:\MyProjects\___MECHANIKOS\UltraSimpleSarlaccPit\database.py", line 2, in <module>
from PyQt5.QtCore import pyqtSignal, QObject, QTimer
builtins.ImportError: DLL load failed: The specified module could not be found.`
There was an error when installing PyQt5 that says it was built for 3.5 not 3.4. So is that why?
If so, where can we download a 3.4.3 compatible version?
Thanks!
Regards,
Team Mechanikos
Try upgrading to 3.5:
Uninstall old PyQt5 and Python 3.4.3 through control panel > Programs
Install python 3.5.1, specifying making sure you specify C:\Python35\ as install location.
Install PyQt5 for 3.5 (Current).
Works.
Hi everyone and thanks for reading. I'm packaging my python code in a single file using pyinstaller, but when I run my packaged file I get the following error:
Traceback (most recent call last):
File "<string>", line 21, in <module>
File "C:\Users\****\Desktop\pyinstaller-2.0\pyinstaller-2.0\PyInstaller\loader\iu.py", line 409, in importHook
ImportError: No module named PyQt4.QtCore
I don't know what this error is telling me, especially since there is no dir name pyinstaller-2.0 on my desktop and I did not use PyQt4 at all.
Imported modules: Tkinter, tkFileDialog, tkMessageBox, multiprocessing, os, sys, time, numpy, scipy.weave, pywt, matplotlib.pyplot
I think the problem is related to multiprocessing, since I did not experience this error before. I used this recipe to implement the multiprocessing module correctly.
If you were using PyQt then the only way to import the modules with PyInstaller is to use
from PyQt4 import QtCore, QtGui
rather than
import PyQt4.QtCore, PyQt4.QtGui
which your error implies. However, you say that you're not using PyQt.
PyQt is an optional dependency of matplotlib so there is a chance that PyInstaller is checking the matplotlib module and consequently including PyQt.
I would suggest excluding the PyQt module from the build; in your .spec file, search out the line for the Analysis class - something like
Analysis( ..., excludes=['PyQt4', 'PyQt4.QtCore', 'PyQt4.QtGui'])
and edit the excludes keyword arg as suggested above.
I want to use PyQt4 from a network location.
I installed Python 2.6.4 x32 in a client and kept PyQt4 x32 module in a network share (for Ex: "\share\Pyton_Modules\x32").
when opened python i did as below and it worked
import sys
sys.path.append(r'\\share\Pyton_Modules\x32')
from PyQt4 import QtGui
everything worked fine.
But i tested the same way for python 2.6.4 x64 in a client and keeping PyQt4 x64 in a network share (for Ex : "\share\Pyton_Modules\x64")
when opened python i did as below and it didn't worked
import sys
sys.path.append(r'\\share\Pyton_Modules\x64')
from PyQt4 import QtGui
i get below error
Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
from PyQt4 import QtGui
ImportError: DLL load failed: The specified module could not be found.
I found a solution to overcome my situation.
I moved all the files from PyQt4\bin to PyQt4 and it worked without any issue...
Hope this could help someone.