2017-01-02 5 views
2

Я только что установил PyQt 5.7.0 на моем Google Compute Engine машину, которая работает на Ubuntu 16.04:вина Сегментация (ядро сбрасывали) Ошибка в PyQt5

enter image description here

Однако, когда я хотел запустить PyQt и недостающий модуль, он производит ошибку сегментации (ядро) сбрасывала ошибку, как показано ниже:

enter image description here

Могу ли я знать, как я могу решить это? Я искал ответ на это часами и до сих пор не могу найти ответ. Будем очень благодарны, если кто-то может помочь.

+0

Вы скомпилировать 'PyQt5' себя? Вы пробовали с другой версией 'Python'? У меня была та же проблема, которую вы описали, и мне удалось ее решить, понизив Python до версии '3.4.3'. –

+0

@ DanielePantaleone Я попытался выполнить python 5.6.2, и он работает, но он не поддерживает QtWebEngine, он использует QtWebKit вместо – dramasea

+1

Python 5.6.2 ??????? Я предполагаю, что вы имели в виду 'PyQt 5.6.2', вам нужно понизить« Python', а не 'PyQt';) –

ответ

-1

Вы не можете запускать программу GUI (PyQt) удаленно, если обе машины не используют протокол X11 с правильно установленными DISPLAY переменными и xhost разрешениями. Я сомневаюсь, что Google вычислить двигатель можно настроить в режиме X11.

+0

Тогда можно ли запустить PyQt на GCE? потому что мне это нужно для моей веб-автоматизации (т. е.: представление формы с cookie и js включено, потому что cookie устанавливается с помощью js) – dramasea

+1

@dramasea Как я уже сказал, вы не можете этого сделать. Для любой практической цели «вы не можете» означает «невозможно». – DyZ

+1

Я не думаю, что это проблема, так как он получает ошибку сегментации при импорте модулей 'PyQt5', а не при запуске программы. Я могу успешно импортировать 'PyQt5'модули на' CentOS' машине без X11. Для меня, похоже, были некоторые проблемы с компиляцией. –

-3

При импорте PyQt5 он также импортирует PyQt5.QtCore, поскольку PyQt5.QtCore является частью PyQt5.

+0

В чем смысл вашего ответа? – Mayou36

0

Предостережения:

  • Я буду считать, что вы не можете запускать любые программы GUI прямо сейчас в вашей виртуальной машине.
  • Я не знаком с GCE платформы и не пробовал, что я собираюсь предложить

Следуйте инструкциям на Your desktop on Google Cloud Platform установить менеджер рабочего стола GUI в GCE виртуальной машине (это будет x11- основанный на ОС Linux), а также vnc-сервер.

Как только вы подключитесь к vm, используя приложение realvnc или tightvnc, приложение GUI, скорее всего, запустится. Возможно, вам придется изменить переменную X11 DISPLAY - хотя вышеупомянутая ссылка не обсуждает это, потому что системы AFAIR * nix используют отдельный сеанс рабочего стола для VNC, чем тот, который в настоящее время вошёл в систему.

Я сомневаюсь, что он будет работать, если в GCE vm нет пользователя.

+0

Это не может быть проблемой, QtCore не содержит ничего, что нужно для отображения. –

+0

@ thecompiler вы правы, но если все остальное не удается, это может стоить попробовать – Schollii

2

Вы можете попробовать (как объяснено в комментариях) скомпилировать PyQt5.7 себя, используя другую версию Python (3.4.3 и 3.4.4 работал для меня, все выше 3.5 не сделал). Обратите внимание, что я тоже скомпилировал Qt5.7, но вы можете использовать тот, который предоставляется установщиком. Вот короткий, надеюсь исчерпывающими, набор команд для настройки виртуальной среды:

Установка зависимостей с помощью APT:

sudo apt-get install -y build-essential libgl1-mesa-dev libx11-dev libxext-dev libxfixes-dev libxi-dev libxrender-dev libxcb1-dev libx11-xcb-dev libxcb-glx0-dev libfontconfig1-dev libfreetype6-dev libglu1-mesa-dev libssl-dev libcups2-dev python3-pip git 

Установка Python 3.4.4:

cd ~/Downloads 
wget https://www.python.org/ftp/python/3.4.4/Python-3.4.4.tar.xz 
tar xf Python-3.4.4.tar.xz 
cd Python-3.4.4 
./configure 
sudo make altinstall 

Создать виртуальную среду:

sudo pip3 install virtualenv 
virtualenv -p /usr/local/bin/python3.4 ~/python34 
source ~/python34/bin/activate 

Установка Qt:

cd ~/Downloads 
git clone git://code.qt.io/qt/qt5.git 
cd ~/Downloads/qt5 
git checkout 5.7 
./init-repository 
./configure -prefix ~/Qt/5.7/gcc_64 -opensource -nomake examples -nomake tests -release -confirm-license 
make -j 5 
make install 

Установка SIP:

cd ~/Downloads 
wget http://downloads.sourceforge.net/project/pyqt/sip/sip-4.18.1/sip-4.18.1.tar.gz 
tar xf sip-4.18.1.tar.gz 
cd sip-4.18.1 
python configure.py 
make 
sudo make install 

Установка PyQt:

cd ~/Downloads 
wget http://downloads.sourceforge.net/project/pyqt/PyQt5/PyQt-5.7/PyQt5_gpl-5.7.tar.gz 
tar xf PyQt5_gpl-5.7.tar.gz 
cd PyQt5_gpl-5.7 
python configure.py --qmake ~/Qt/5.7/gcc_64/bin/qmake --disable QtPositioning --no-qsci-api --no-designer-plugin --no-qml-plugin --confirm-license 
make -j 5 
sudo make install 
0

Если вы установили PyQt5 с склонным или APT-получить, теперь сотворите

Суды PIP3 установить pyqt5