Вопрос

As the offical pyqt5-installation in the ubuntu repositories seem to lack support for QtQuick, I tried to install pyqt5 from source. The installation itself seems to work correctly, but when running a python script that uses PyQt5, python complains that it cannot find that PyQt.

After building sip 4.15.5, I downloaded PyQt5.2. It should be compatible to my version of Qt (output of qmake --version):

QMake version 3.0
Using Qt version 5.2.0 in /opt/qt5.1.1/5.2.0/gcc_64/lib

I ran

The output of configure.py of pyqt can be found here: https://gist.github.com/Mitmischer/8677889 .

The installation output of pyqt can be found here: https://gist.github.com/Mitmischer/8677780 .

After sudo make install, I can see a folder PyQt5 in /usr/lib/python3.3/site-packages which is quite nice. However, if I run cat PyQt5/__init__.py, there is no actual code inside:

# Copyright (c) 2014 Riverbank Computing Limited <info@riverbankcomputing.com>
# 
# This file is part of PyQt5.
# 
# This file may be used under the terms of the GNU General Public License
# version 3.0 as published by the Free Software Foundation and appearing in
# the file LICENSE included in the packaging of this file.  Please review the
# following information to ensure the GNU General Public License version 3.0
# requirements will be met: http://www.gnu.org/copyleft/gpl.html.
# 
# If you do not wish to use this file under the terms of the GPL version 3.0
# then you may purchase a commercial license.  For more information contact
# info@riverbankcomputing.com.
# 
# This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
# WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 

Yep, that's all what is inside that file. I don't know whether it's supposed to be that way, but it looks strange to me. Furthermore (ls PyQt5):

__init__.py               QtCore.so      QtGui.so         QtMultimediaWidgets.so  QtPositioning.so   QtQuick.so       Qt.so     QtTest.so     QtX11Extras.so
_QOpenGLFunctions_2_0.so  QtDBus.so      QtHelp.so        QtNetwork.so            QtPrintSupport.so  QtSensors.so     QtSql.so  QtWebKit.so   QtXmlPatterns.so
QtBluetooth.so            QtDesigner.so  QtMultimedia.so  QtOpenGL.so             QtQml.so           QtSerialPort.so  QtSvg.so  QtWidgets.so  uic/

Doesn't look that pythonic.

As suggested elsewhere, I (hopefully) set my pythonpath appropriately:

> echo $PYTHONPATH 
/usr/lib/python3.3/site-packages/

Now, if I start an interactive python3.3-session (or a script), PyQt5 cannot be found:

Python 3.3.2+ (default, Oct  9 2013, 14:50:09) 
[GCC 4.8.1] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from PyQt5 import *
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named 'PyQt5'
>>>

Has anyone else tried to install PyQt5 from source? What can I do to make PyQt work?

Это было полезно?

Решение

You probrably messed PYTHONPATH in someway.

I have successfully built, installed and used PyQT using virtual environment. So here is how to install it using virtualenv. There are tons of tutorals, so please read about it.

So install python-virtualenv, virtualenvwrapper (at least that's what they are called on Debian).

mkvirtualenv -p /path/to/python3.3 name 
workon name
cd PyQtSource
configure 
make 
make install 

To use this enviorment do:

workon name
python 
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top