QtWebKit на ubuntu 17.04

я пытаюсь скомпилировать это приложение на Python из исходников проект qtwebkit как зависимость, и это, кажется, быть причиной проблемы. Как я устанавливаю qtwebkit на Ubuntu 17.04 64-разрядной таким образом, который позволяет компилировать Пип 32-битного приложения вместо python2 (и в результате компиляции приложения), чтобы быть в состоянии найти его? При запуске, программа завершает работу и выводит лог в ~/FAForever/журналы/навсегда.журнала, который, кажется, ясно указывают на недостающий QtWebKit вопрос : [F1] в чате импорт файла "/home/t/faf-0.12.5/faf-client/src/chat/init.py", линия 33, В из импорт _chatwidget ChatWidget как лобби файла "/home/t/faf-0.12.5/faf-client/src/chat/_chatwidget.py", линия 15, в чате.канал канал импорта файла "/home/t/faf-0.12.5/faf-client/src/chat/channel.py", линия 2, из Англии.анализировать импорт анализировать файл "/home/t/faf-0.12.5/faf-client/src/fa/init.py", линия 18, из повтор импорта повтор файла "/home/t/faf-0.12.5/faf-client/src/fa/replay.py" 5-я линия, от фа.проверьте импортировать файл проверить "/home/t/faf-0.12.5/faf-client/src/fa/check.py", линия 12, В от фа.модов импортировать файл checkMods "/home/t/faf-0.12.5/faf-client/src/fa/mods.py", линия 3, в импорт modvault файл "/home/t/faf-0.12.5/faf-client/src/modvault/init.py", строка 51, от modvault.утилиты импорта * файл "/home/t/faf-0.12.5/faf-client/src/modvault/utils.py", линия 12, в хранилище импорт luaparser файл "/home/t/faf-0.12.5/faf-client/src/vault/init.py", линия 2, В из импорт составе pyqt4 QtWebKit ImportError: не удается импортировать имя QtWebKit 2017-06-08 21:41:12,190 инфо запросы.пакетов.urllib3.начиная connectionpool новый http-соединение (1): api.dev.faforever.com 2017-06-08 21:41:12,387 инфо запросы.пакетов.urllib3.connectionpool начиная новый https-соединение (1): api.dev.faforever.com так что, возможно, мне просто нужно запустить sudo apt install qtwebkit я желаю! это оказалось не так просто. Я думал, что добавление этой программы будет непросто, но я вынужден признать, что я был самонадеянным. Его нет в репозитории, и нет deb для убунту : https://launchpad.net/ubuntu/zesty/источник/qtwebkit я нашел это: https://launchpad.net/ubuntu/zesty/источник/qtwebkit-источник, который казался многообещающим. Я запустил процедуру помощью pbuilder : sudo pbuilder --create sudo echo COMPONENTS="main restricted universe multiverse" >> /etc/pbuilderrc sudo pbuilder update --override-config sudo pbuilder --build qtwebkit-source_2.3.2-0ubuntu13.dsc , который создал четыре deb файлы: libqtwebkit4_2.3.2-0ubuntu13_amd64.деб libqtwebkit4-dbg_2.3.2-0ubuntu13_amd64.деб libqtwebkit-dev_2.3.2-0ubuntu13_amd64.деб libqtwebkit-qmlwebkitplugin_2.3.2-0ubuntu13_amd64.деб у них есть две проблемы: они начинают с вкладке-вкладке "либерал" и [от f13] возвращает все это: libqdjango-db0 libqt4-declarative-gestures libqt4-scripttools libqt5gui5 libqt5quicktest5 libqt5xmlpatterns5 это основные типы файловых Р1 libqt4-декларативные-частиц libqt4-SQL для libqt5multimedia5 libqt5sensors5 libqtassistantclient4 libqjson0 libqt4-конструктор libqt4-SQL и SQLite в libqt5multimedia5-плагины libqt5sql5 libqtcore4 libqmenumodel0 libqt4-dev и libqt4-SVG с libqt5multimediaquick-п5 libqt5sql5-SQLite в libqtdbus4 libqmi-glib5 libqt4-dev и-ОГРН libqt4-тест libqt5multimediawidgets5 libqt5svg5 libqtgui4 libqmi-прокси libqt4-помочь libqt4-XML и libqt5network5 libqt5systeminfo5 libqtwebkit4 libqofono-qt5-0 libqt4-сеть libqt4-xmlpatterns libqt5opengl5 libqt5test5 libqtwebkit4-дбг libqpdf17 libqt4-OpenGL для libqt5concurrent5 libqt5organizer5 libqt5versit5 libqtwebkit-дев libqqwing2v5 libqt4-в OpenGL-дэв libqt5contacts5 libqt5webkit5 libqt5positioning5 libqtwebkit-qmlwebkitplugin libqt4-дбг libqt4qevercloud3 libqt5core5a libqt5printsupport5 libqt5widgets5 libqtweetlib1.0 libqt4-dbus не libqt4-qt3support libqt5dbus5 libqt5qml5 libqt5x11extras5 libqtweetlib-дэв libqt4-декларативный libqt4-сценарий libqt5feedback5 libqt5quick5 libqt5xml5 libquadmath0 гденаходится не работает на любой из этих : $ whereis libqtwebkit4 libqtwebkit4: я тоже пробовал : sudo apt install python-pyqt5.qtwebkit тот же результат. Я подумал: "может быть, я не должен делать эту сторону системы, но боковой виртуальное окружение?". Так я пробовал добавлять его в requirements.txt файл: qtwebkit qtwebkit-кодом на языке Python-питон qtwebkit-pyqt5.qtwebkit libqtwebkit qtwebkit==4.0 pytest-qtwebkit, но Пип не мог найти его, когда попадая в ./faf-client-venv/bin/pip install -r ./faf-client/requirements.txt. Это работало в прошлом, как мой YouTube учебнике показано, я скомпилировал его для Linux раньше и даже создали удобный скрипт, который упрощает сборники шагов, которые вы можете использовать, чтобы облегчить помочь мне, если вы решите (предупреждаю, этот скрипт был протестирован только под Ubuntu дистрибутивы и я немного новичок, так что это не может быть чистый код, корректировки приветствуются). Обновление (10/6/2017) : я попробовал другой подход для получения qtwebki; составление после этого руководство на github, но я столкнулся с другой проблемой : t@tsu:~/WebKitBuild/Release$ cmake -DPORT=Qt -DCMAKE_BUILD_TYPE=Release \ ../.. – The C compiler identification is GNU 6.3.0 – The CXX compiler identification is GNU 6.3.0 – Check for working C compiler: /usr/bin/cc – Check for working C compiler: /usr/bin/cc – works – Detecting C compiler ABI info – Detecting C compiler ABI info - done – Detecting C compile features – Detecting C compile features - done – Check for working CXX compiler: /usr/bin/c++ – Check for working CXX compiler: /usr/bin/c++ – works – Detecting CXX compiler ABI info – Detecting CXX compiler ABI info - done – Detecting CXX compile features – Detecting CXX compile features - done – Found BISON: /usr/bin/bison (found suitable version "3.0.4", minimum required is "2.1") – Found Gperf: /usr/bin/gperf (Required is at least version "3.0.1") – Found Perl: /usr/bin/perl (found suitable version "5.24.1", minimum required is "5.10.0") – Found PythonInterp: /usr/bin/python2.7 (found suitable version "2.7.13", minimum required is "2.7.0") – Could NOT find Ruby (missing: RUBY_INCLUDE_DIR RUBY_LIBRARY RUBY_CONFIG_INCLUDE_DIR) (found suitable version "2.3.0", minimum требуется "1.9") – Ищу включают в себя функции файла.ч – Ищу включают в себя функции файла.н - нашли с cmake предупреждение (дев) в источнике х/OptionsQt.с cmake:253 (get_target_property): CMP0045 политики не устанавливается: ошибка на несуществующие цели в get_target_property. Запуск "с cmake-помощь-политика CMP0045" подробности политики. Используйте команду cmake_policy, чтобы установить политику и подавить это предупреждение. get_target_property() вызывается с несуществующей цели "Qt5::сердечник". Стек вызовов (последнего): Источник х/WebKitCommon.с cmake:47 (включить) CMakeLists.ТХТ:135 (включить) это предупреждение для разработчиков проекта. Использовать -кто-дэв, чтобы подавить его. – Нашли PkgConfig: /usr/Бен/пкг-конфиг (нашел версию "0.29.1") – проверка модуля 'и sqlite3' – найдено sqlite3, с версии 3.16.2 – найден файл SQLite: в /usr/включать – Ищу pthread в.ч – Ищу pthread в.н - найден – Ищу pthread_create – Ищу pthread_create - не нашел – Ищу pthread_create в pthreads – Ищу pthread_create в pthreads - не нашел – Ищу pthread_create в pthread в – Ищу pthread_create в pthread в - нашли – нашли темы: правда – нашли в формате JPEG: каталог /usr/lib в/x86_64 с-линукс-дистрибутив GNU/libjpeg.так нашли с zlib: /уср/либ/x86_64 с-линукс-дистрибутив GNU/сайт libz.так (нашел версию "1.2.11") – нашли в формате PNG: файл /usr/lib в/x86_64 с-линукс-дистрибутив GNU/libpng.так (нашел версию "1.6.28") – проверка модуля 'сис-ок' – найдено сис-ок, версия 57.1 – проверка модуля реанимации-как i18n' – найдено сис-реализация i18n, версия 57.1 – найдено сис заголовочные файлы в /usr/включать – найдено сис библиотеки: каталог /usr/lib в/x86_64 с-линукс-дистрибутив GNU/libicuuc.так нашли библиотеке libxml2: в /usr/lib в/x86_64 с-линукс-дистрибутив GNU/библиотеке libxml2.так (нашел подходящий вариант "2.9.4", минимальным требованием является "2.8.0") – нашли для libxslt: в /usr/lib в/x86_64 с-линукс-дистрибутив GNU/для libxslt.так (нашел подходящий вариант "1.1.29", минимальным требованием является "1.1.7") – проверка модуля 'их' – нашли их, версия 2.11.94 – нашли их: в /usr/lib в/x86_64 с-линукс-дистрибутив GNU/libfontconfig.так что – не может найти файлы webp (отсутствует: WEBP_INCLUDE_DIRS WEBP_LIBRARIES ошибка) с cmake у источника/х/OptionsQt.с cmake:454 (find_package): не обеспечив "FindQt5.с cmake" в CMAKE_MODULE_PATH этого проекта обратилось с cmake, чтобы найти конфигурационный файл пакета, предоставляемого "Qt5", но с cmake, так и не нашел. Не удалось найти файл конфигурации пакета, предоставляемого "Qt5" (запрошенная версия 5.2.0) с любым из следующих имен: Qt5Config.тмаки qt5-конфигурации.с cmake Добавить префикс установка "Qt5" в CMAKE_PREFIX_PATH или набор "Qt5_DIR" в каталог, содержащий одну из указанных выше файлов. Если "Qt5" предусматривает отдельный пакет разработки или SDK, убедитесь, что он установлен. Стек вызовов (последнего): Источник х/WebKitCommon.с cmake:47 (включить) CMakeLists.в формате txt:135 (включить) – Настройка неполной, ошибки! См. также "/домашний/т/WebKitBuild/выпуска/CMakeFiles/CMakeOutput.лог". См. также "/домашний/т/WebKitBuild/выпуска/CMakeFiles/CMakeError.лог". Обновление (21/06/2017) : Спасибо @edwinksl я сделал некоторые успехи (после его руководства я внес некоторые изменения) : сразу после pip install -r faf-client/requirements.txt я добавил wget https://github.com/FAForever/uid/releases/download/v4.0.4/faf-uid -O ./faf-client/lib/faf-uid и [f17 в] тогда cd ./faf-client && ../venv/bin/python src/__main__.py согласно исходному учебник сообщение на форуме, я создал скрипт : http://forums.faforever.com/viewtopic.php?f=2&t=4507&start=200#p139389 ФАФ работает, но все равно с ошибкой журнала. журнал намного короче, хотя, но до сих пор, кажется, указывает QtWebKit вопрос : 2017-06-21 16:37:55,894 INFO root FAF version: 0.13.0-rc-2-g09326cd Environment: production 2017-06-21 16:37:55,895 INFO util PERSONAL_DIR initial: /home/t/Documents 2017-06-21 16:37:55,896 INFO util PERSONAL_DIR final: /home/t/Documents 2017-06-21 16:37:56,099 INFO __main__ >>> --------------------------- Application Launch 2017-06-21 16:37:56,274 ERROR __main__ Uncaught exception Traceback (most recent call last): File "src/__main__.py", line 129, in runFAF() File "src/__main__.py", line 87, in runFAF import client File "/home/t/Desktop/temp/faf-client/src/client/__init__.py", line 31, in from _clientwindow import ClientWindow File "/home/t/Desktop/temp/faf-client/src/client/_clientwindow.py", line 33, в составе pyqt4 импорт модулями qtcore, qtgui пакет, модуле qtnetwork, QtWebKit ImportError: не удается импортировать имя QtWebKit обновить N°2 продвигается вперед : с помощью новый репозиторий нажимаем https://github.com/FAForever/client/tree/474-feature-py3 после того, как клонировали этой ветке и переименовал его в "фаф-клиент" : sudo apt install python3-pyqt5 virtualenv venv source venv/bin/activate pip install -U --force-reinstall pip wget https://github.com/FAForever/uid/releases/download/v4.0.4/faf-uid -O ./фаф-клиент/либ/фаф-юид обновление chmod +x ./faf-client/lib/faf-uid cd faf-client/ pip install -r requirements.txt cd ../ cd venv/lib/python2.7/site-packages ln -s /usr/lib/python3.7/dist-packages/PyQt4/ . ln -s /usr/lib/python3.7/dist-packages/sip.x86_64-linux-gnu.so . ln -s /usr/lib/python3.7/dist-packages/PySide/ . cd - cd ./faf-client && ../venv/bin/python src/__main__.py bash: venv/bin/python: No such file or directory (venv) t@tsu:~/faf2/faf-client$ cd (venv) t@tsu:~$ cd faf2/ (venv) t@tsu:~/faf2$ cd ./faf-client && ../venv/bin/python src/__main__.py Traceback (most recent call last): File "src/__main__.py", line 43, in from PyQt5 import QtWidgets, uic ImportError: No module named PyQt5 (22/6/2017)

это приложение на Python

и работает спасибо @edwinksl с "Питон 3 с PyQt5" руководство. пометить его как решение. хорошая работа![!обновление d79] [кадрах, снятых D80] (31/1/2018)[!кадрах, снятых D80]

извини, что так долго, чтобы обновлять этот пост. это стало 2500 Просмотров! он действительно заслуживает актуальная информация.

так как я задавал много произошло. Теперь ФАФ имеет более или менее поддерживают Linux. у них даже есть Вики по его установке (и в дистро!) :

https://wiki.faforever.com/index.php?title=Setting_Up_FAF_Linux#Debian.2FUbuntu

это не гарантируется, чтобы соответствовать вашим потребностям, больше можно найти, копаясь в : https://wiki.faforever.com/index.php?title=Setting_Up_FAF_Linux#Debian.2FUbuntu

сейчас Вики не все в курсе.

какое-то время я мог сделать фаф бежать с родной питон, не виртуальное окружение нужно, но авер в QT изменение зависимостей и состав пакетов, а также использование фар пожалели, что снова ... временно надеюсь !

будьте уверены, я получил это работает лично и я здесь, чтобы предложить утешение (попробуйте пропустить шаги 6 & 7 первых они могут быть нужны ):

Установите некоторые предпосылки : [зг19] cd Downloads && wget https://github.com/FAForever/client/archive/0.16.1.tar.gz (или какой релиз последний на https://github.com/FAForever/client/releases/ ) экстракт (для этого примера я возьму домой) ([клавиши f21]) cd fafclient/ : перейти к работе каталог sed -i 1,1d requirements.txt : удаляет cxFreeze от требований (это не требуется, и он будет убивать компиляции) virtualenv -p python3 faf [f25 привод датчика] sudo wget https://github.com/FAForever/uid/releases/download/v4.0.5/faf-uid -O /usr/bin/faf-uid : загрузок входа бинарные и : sudo chmod +x /usr/bin/faf-uid позволяет ему быть выполнены фаф. touch res/RELEASE-VERSION && echo "0.16.1" >> res/RELEASE-VERSION : окончательное требование выполняет фаф : а версии файла.

теперь он должен работать, но так давайте сделаем бегунок :

touch FAF.sh echo "#! /bin/bash" >> FAF.sh echo "cd /home/t/faf-client" >> FAF.sh echo "python3 src/__main__.py" >> FAF.sh chmod +x FAF.sh

затем ./FAF.sh для запуска фар.

Ура!

11
задан 1 February 2018 в 03:43

6 ответов

Примечание: шаги для Python 3 с PyQt5, как доказано, работают, в то время как шаги для Python 2 с PyQt4 и PySide все еще являются экспериментальными.

Python 3 с PyQt5 (проверено на работу)

Похоже, что ветвь 474-feature-py3 хранилища данных FAForever / client GitHub использует Python 3 с PyQt5, который содержит QtWebKit. Поэтому использование этой ветви является наиболее простым решением. Обратите внимание, что PyQt5 (но не PyQt4) на самом деле может быть установлен с pip, поэтому это становится более удобным.

Шаги для Python 3 с PyQt5:

cd в каталог по вашему выбору, который будет ~/Desktop/temp для написания этого ответа, git clone репозиторий FAForever / client GitHub и git checkout ветвь 474-feature-py3:
mkdir ~/Desktop/temp
cd ~/Desktop/temp
git clone https://github.com/FAForever/client.git faf-client
cd faf-client
git checkout 474-feature-py3
Создайте и активируйте virtualenv для Python 3 (по умолчанию используется Python 3.5 для Ubuntu 17.04) и принудительное обновление pip, чтобы убедиться, что оно обновлено:
virtualenv venv -p python3  # replace python3 with python3.6 if you want to use Python 3.6 instead
source venv/bin/activate
pip install -U --force-reinstall pip
Используйте pip для установки PyQt5 и из requirements.txt:
pip install PyQt5
pip install -r requirements.txt
Загрузите двоичный файл faf-uid в faf-client/lib и сделайте его исполняемым:
wget https://github.com/FAForever/uid/releases/download/v4.0.4/faf-uid -O lib/faf-uid
chmod +x lib/faf-uid
Запустите python на src/__main__.py:
python src/__main__.py

Python 2 с PyQt4 и PySide (экспериментальный) [!d15 ]

Похоже, я, возможно, выяснил, как импортировать модуль QtWebKit, но у меня нет установленной игры FAF, поэтому я не могу полностью проверить, что это работает, и поэтому этот ответ является незавершенным.

В двух словах я использовал apt для установки python-qt4, у которого нет модуля QtWebKit. Я создал и активировал virtualenv без использования опции --system-site-packages и использовал pip для установки PySide, у которого есть модуль QtWebKit. Затем я символизировал соответствующие системные библиотеки и файлы для PyQt4 в virtualenv. Затем я сделал пару изменений в faf-client/src, чтобы импортировать модуль QtWebKit из PySide. Это решение основано на https://stackoverflow.com/a/28850104/486919, https://stackoverflow.com/a/36887302/486919 и https://stackoverflow.com/a/37616466/486919.[!d17 ]

Шаги:

cd в каталог по вашему выбору, который будет ~/Desktop/temp для написания этого ответа, git clone хранилище FAForever / client GitHub и git checkout ветвь 474-feature-py3:
mkdir ~/Desktop/temp
cd ~/Desktop/temp
git clone https://github.com/FAForever/client.git faf-client
cd faf-client
git checkout 474-feature-py3

cd в каталог по вашему выбору, который будет ~/Desktop/temp для написания этого ответа, git clone FAForever / client Репозиторий GitHub и git checkout ветвь 474-feature-py3:

mkdir ~/Desktop/temp
cd ~/Desktop/temp
git clone https://github.com/edwinksl/client.git faf-client
cd faf-client
git checkout patch
В этой ветке patch есть несколько дополнительных коммитов по сравнению с ветвью по умолчанию develop: 1) она избавляется от спецификации версии для cx_Freeze , что давало мне проблемы с установкой, если я использовал ранее указанную версию 4.3.4, и 2) она импортирует QtWebKit из PySide вместо PyQt4. Создайте и активируйте virtualenv для Python 3 (по умолчанию это Python 3.5 для Ubuntu 17.04) и принудительное обновление pip, чтобы убедиться, что оно обновлено:
virtualenv venv -p python3  # replace python3 with python3.6 if you want to use Python 3.6 instead
source venv/bin/activate
pip install -U --force-reinstall pip

Создайте и активируйте virtualenv для Python 3 (по умолчанию это Python 3.5 для Ubuntu 17.04) и force-upgrade pip, чтобы убедиться, что он обновлен:

pip install PySide
pip install -r requirements.txt
Используйте pip для установки PyQt5 и из requirements.txt:
pip install PyQt5
pip install -r requirements.txt

Используйте pip для установки PyQt5 и из requirements.txt:

cd venv/lib/python2.7/site-packages
ln -s /usr/lib/python2.7/dist-packages/PyQt4/ .
ln -s /usr/lib/python2.7/dist-packages/sip.x86_64-linux-gnu.so .
Обратите внимание на . на конец каждой символической ссылки. Загрузите двоичный файл faf-uid в faf-client/lib и сделайте его исполняемым:
wget https://github.com/FAForever/uid/releases/download/v4.0.4/faf-uid -O lib/faf-uid
chmod +x lib/faf-uid

4
ответ дан 22 May 2018 в 21:44
  • 1
    сначала спасибо! и жаль, что я пропустил очередь. Я был госпитализирован. Я застрял в: Resolving deltas: 100% (8873/8873), done. t@tsu:~/Desktop/temp$ git checkout patch fatal: Not a git repository (or any of the parent directories): .git t@tsu:~/Desktop/temp$ git init Initialized empty Git repository in /home/t/Desktop/temp/.git/ t@tsu:~/Desktop/temp$ git checkout patch error: pathspec 'patch' did not match any file(s) known to git. – tatsu 21 June 2017 в 17:15
  • 2
    @tatsu Мой плохой. Сначала вам нужно cd в каталог faf-client, затем выполните git checkout patch. – edwinksl 21 June 2017 в 17:17
  • 3
    @edwinskl yup !! и cd резервное копирование, как только это будет сделано! – tatsu 21 June 2017 в 17:18
  • 4
    @edwinskl сразу после pip install -r faf-client/requirements.txt Я добавил wget https://github.com/FAForever/uid/releases/download/v4.0.4/faf-uid -O ./faf-client/lib/faf-uid и chmod +x ./faf-client/lib/faf-uid, затем сделал cd ./faf-client && ../venv/bin/python src/__main__.py в соответствии с исходным сообщением в учебном форуме. Я построил свой скрипт с помощью: forums.faforever.com/… FAF работает bbut все еще с журналом ошибок. – tatsu 21 June 2017 в 17:30
  • 5
    @tatsu Не стесняйтесь предлагать изменения! В конце концов, у вас установлена ​​игра, пока я не ... – edwinksl 21 June 2017 в 17:35

Примечание: шаги для Python 3 с PyQt5, как доказано, работают, в то время как шаги для Python 2 с PyQt4 и PySide все еще являются экспериментальными.

Python 3 с PyQt5 (проверено на работу)

Похоже, что ветвь 474-feature-py3 хранилища данных FAForever / client GitHub использует Python 3 с PyQt5, который содержит QtWebKit. Поэтому использование этой ветви является наиболее простым решением. Обратите внимание, что PyQt5 (но не PyQt4) на самом деле может быть установлен с pip, поэтому это становится более удобным.

Шаги для Python 3 с PyQt5:

cd в каталог по вашему выбору, который будет ~/Desktop/temp для написания этого ответа, git clone репозиторий FAForever / client GitHub и git checkout ветвь 474-feature-py3: mkdir ~/Desktop/temp cd ~/Desktop/temp git clone https://github.com/FAForever/client.git faf-client cd faf-client git checkout 474-feature-py3 Создайте и активируйте virtualenv для Python 3 (по умолчанию используется Python 3.5 для Ubuntu 17.04) и принудительное обновление pip, чтобы убедиться, что оно обновлено: virtualenv venv -p python3 # replace python3 with python3.6 if you want to use Python 3.6 instead source venv/bin/activate pip install -U --force-reinstall pip Используйте pip для установки PyQt5 и из requirements.txt: pip install PyQt5 pip install -r requirements.txt Загрузите двоичный файл faf-uid в faf-client/lib и сделайте его исполняемым: wget https://github.com/FAForever/uid/releases/download/v4.0.4/faf-uid -O lib/faf-uid chmod +x lib/faf-uid Запустите python на src/__main__.py: python src/__main__.py

Python 2 с PyQt4 и PySide (экспериментальный)

Похоже, я, возможно, выяснил, как импортировать модуль QtWebKit, но у меня нет установленной игры FAF, поэтому я не могу полностью проверить, что это работает, и поэтому этот ответ является незавершенным.

В двух словах я использовал apt для установки python-qt4, у которого нет модуля QtWebKit. Я создал и активировал virtualenv без использования опции --system-site-packages и использовал pip для установки PySide, у которого есть модуль QtWebKit. Затем я символизировал соответствующие системные библиотеки и файлы для PyQt4 в virtualenv. Затем я сделал пару изменений в faf-client/src, чтобы импортировать модуль QtWebKit из PySide. Это решение основано на https://stackoverflow.com/a/28850104/486919, https://stackoverflow.com/a/36887302/486919 и https://stackoverflow.com/a/37616466/486919.

Шаги:

cd в каталог по вашему выбору, который будет ~/Desktop/temp для написания этого ответа, git clone хранилище FAForever / client GitHub и git checkout ветвь 474-feature-py3: mkdir ~/Desktop/temp cd ~/Desktop/temp git clone https://github.com/FAForever/client.git faf-client cd faf-client git checkout 474-feature-py3

cd в каталог по вашему выбору, который будет ~/Desktop/temp для написания этого ответа, git clone FAForever / client Репозиторий GitHub и git checkout ветвь 474-feature-py3:

mkdir ~/Desktop/temp cd ~/Desktop/temp git clone https://github.com/edwinksl/client.git faf-client cd faf-client git checkout patch В этой ветке patch есть несколько дополнительных коммитов по сравнению с ветвью по умолчанию develop: 1) она избавляется от спецификации версии для cx_Freeze , что давало мне проблемы с установкой, если я использовал ранее указанную версию 4.3.4, и 2) она импортирует QtWebKit из PySide вместо PyQt4. Создайте и активируйте virtualenv для Python 3 (по умолчанию это Python 3.5 для Ubuntu 17.04) и принудительное обновление pip, чтобы убедиться, что оно обновлено: virtualenv venv -p python3 # replace python3 with python3.6 if you want to use Python 3.6 instead source venv/bin/activate pip install -U --force-reinstall pip

Создайте и активируйте virtualenv для Python 3 (по умолчанию это Python 3.5 для Ubuntu 17.04) и force-upgrade pip, чтобы убедиться, что он обновлен:

pip install PySide pip install -r requirements.txt Используйте pip для установки PyQt5 и из requirements.txt: pip install PyQt5 pip install -r requirements.txt

Используйте pip для установки PyQt5 и из requirements.txt:

cd venv/lib/python2.7/site-packages ln -s /usr/lib/python2.7/dist-packages/PyQt4/ . ln -s /usr/lib/python2.7/dist-packages/sip.x86_64-linux-gnu.so . Обратите внимание на . на конец каждой символической ссылки. Загрузите двоичный файл faf-uid в faf-client/lib и сделайте его исполняемым: wget https://github.com/FAForever/uid/releases/download/v4.0.4/faf-uid -O lib/faf-uid chmod +x lib/faf-uid
4
ответ дан 18 July 2018 в 11:57

Примечание: шаги для Python 3 с PyQt5, как доказано, работают, в то время как шаги для Python 2 с PyQt4 и PySide все еще являются экспериментальными.

Python 3 с PyQt5 (проверено на работу)

Похоже, что ветвь 474-feature-py3 хранилища данных FAForever / client GitHub использует Python 3 с PyQt5, который содержит QtWebKit. Поэтому использование этой ветви является наиболее простым решением. Обратите внимание, что PyQt5 (но не PyQt4) на самом деле может быть установлен с pip, поэтому это становится более удобным.

Шаги для Python 3 с PyQt5:

cd в каталог по вашему выбору, который будет ~/Desktop/temp для написания этого ответа, git clone репозиторий FAForever / client GitHub и git checkout ветвь 474-feature-py3: mkdir ~/Desktop/temp cd ~/Desktop/temp git clone https://github.com/FAForever/client.git faf-client cd faf-client git checkout 474-feature-py3 Создайте и активируйте virtualenv для Python 3 (по умолчанию используется Python 3.5 для Ubuntu 17.04) и принудительное обновление pip, чтобы убедиться, что оно обновлено: virtualenv venv -p python3 # replace python3 with python3.6 if you want to use Python 3.6 instead source venv/bin/activate pip install -U --force-reinstall pip Используйте pip для установки PyQt5 и из requirements.txt: pip install PyQt5 pip install -r requirements.txt Загрузите двоичный файл faf-uid в faf-client/lib и сделайте его исполняемым: wget https://github.com/FAForever/uid/releases/download/v4.0.4/faf-uid -O lib/faf-uid chmod +x lib/faf-uid Запустите python на src/__main__.py: python src/__main__.py

Python 2 с PyQt4 и PySide (экспериментальный)

Похоже, я, возможно, выяснил, как импортировать модуль QtWebKit, но у меня нет установленной игры FAF, поэтому я не могу полностью проверить, что это работает, и поэтому этот ответ является незавершенным.

В двух словах я использовал apt для установки python-qt4, у которого нет модуля QtWebKit. Я создал и активировал virtualenv без использования опции --system-site-packages и использовал pip для установки PySide, у которого есть модуль QtWebKit. Затем я символизировал соответствующие системные библиотеки и файлы для PyQt4 в virtualenv. Затем я сделал пару изменений в faf-client/src, чтобы импортировать модуль QtWebKit из PySide. Это решение основано на https://stackoverflow.com/a/28850104/486919, https://stackoverflow.com/a/36887302/486919 и https://stackoverflow.com/a/37616466/486919.

Шаги:

cd в каталог по вашему выбору, который будет ~/Desktop/temp для написания этого ответа, git clone хранилище FAForever / client GitHub и git checkout ветвь 474-feature-py3: mkdir ~/Desktop/temp cd ~/Desktop/temp git clone https://github.com/FAForever/client.git faf-client cd faf-client git checkout 474-feature-py3

cd в каталог по вашему выбору, который будет ~/Desktop/temp для написания этого ответа, git clone FAForever / client Репозиторий GitHub и git checkout ветвь 474-feature-py3:

mkdir ~/Desktop/temp cd ~/Desktop/temp git clone https://github.com/edwinksl/client.git faf-client cd faf-client git checkout patch В этой ветке patch есть несколько дополнительных коммитов по сравнению с ветвью по умолчанию develop: 1) она избавляется от спецификации версии для cx_Freeze , что давало мне проблемы с установкой, если я использовал ранее указанную версию 4.3.4, и 2) она импортирует QtWebKit из PySide вместо PyQt4. Создайте и активируйте virtualenv для Python 3 (по умолчанию это Python 3.5 для Ubuntu 17.04) и принудительное обновление pip, чтобы убедиться, что оно обновлено: virtualenv venv -p python3 # replace python3 with python3.6 if you want to use Python 3.6 instead source venv/bin/activate pip install -U --force-reinstall pip

Создайте и активируйте virtualenv для Python 3 (по умолчанию это Python 3.5 для Ubuntu 17.04) и force-upgrade pip, чтобы убедиться, что он обновлен:

pip install PySide pip install -r requirements.txt Используйте pip для установки PyQt5 и из requirements.txt: pip install PyQt5 pip install -r requirements.txt

Используйте pip для установки PyQt5 и из requirements.txt:

cd venv/lib/python2.7/site-packages ln -s /usr/lib/python2.7/dist-packages/PyQt4/ . ln -s /usr/lib/python2.7/dist-packages/sip.x86_64-linux-gnu.so . Обратите внимание на . на конец каждой символической ссылки. Загрузите двоичный файл faf-uid в faf-client/lib и сделайте его исполняемым: wget https://github.com/FAForever/uid/releases/download/v4.0.4/faf-uid -O lib/faf-uid chmod +x lib/faf-uid
4
ответ дан 24 July 2018 в 19:53

Проверить ~/.bashrc для переопределения версии Python

Пакет, который вы хотите скомпилировать, требует Python версии 2.7.x. Подтвердите, что с помощью этих команд:

$ python
Python 2.7.12 (default, Nov 19 2016, 06:48:10) 
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import PyQt4
>>> print PyQt4.__path__
['/usr/lib/python2.7/dist-packages/PyQt4']
>>> 

Это была проблема в этом Q & amp; A.

Вы не одиноки с linux error PyQt4 import QtWebKit поиском google:

[d5 ] ImportError: ни один модуль с именем «PyQt4.QtWebKit» не может запускать spyder / ImportError: ни один модуль с именем QtWebKit # 3200 ImportError: Нет модуля с именем «PyQt4.QtWebKit» # 1683 Некоторые приложения PyQt4 не запускаются в Якнети из-за отсутствия PyQt4-WebKit Python не может импортировать определенные модули PyQt4 QtWebKit Python 2.7.11 - ImportError: невозможно импортировать имя QtWebKit - Kali Linux / Debian 8 PyQt4: Почему я получаю «ImportError: No module QtWebkit»?

К сожалению, есть еще много результатов Google, но я считаю, что это самое подходящее для вас, если первая рекомендация не исчерпывается.

1
ответ дан 22 May 2018 в 21:44
  • 1
    спасибо, но я не уверен, что это я, кто не понимает, или что, но я использую virtualenv, который (я считаю) помогает мне не устанавливать локально python2. учитывая, что мне не нужно беспокоиться о том, что python3 вмешивается в что-либо. исправьте меня, если я полностью упустил отметку здесь – tatsu 21 June 2017 в 18:01

Проверить ~/.bashrc для переопределения версии Python

Пакет, который вы хотите скомпилировать, требует Python версии 2.7.x. Подтвердите, что с помощью этих команд:

$ python Python 2.7.12 (default, Nov 19 2016, 06:48:10) [GCC 5.4.0 20160609] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import PyQt4 >>> print PyQt4.__path__ ['/usr/lib/python2.7/dist-packages/PyQt4'] >>>

Это была проблема в этом Q & amp; A.

Вы не одиноки с linux error PyQt4 import QtWebKit поиском google:

ImportError: ни один модуль с именем «PyQt4.QtWebKit» не может запускать spyder / ImportError: ни один модуль с именем QtWebKit # 3200 ImportError: Нет модуля с именем «PyQt4.QtWebKit» # 1683 Некоторые приложения PyQt4 не запускаются в Якнети из-за отсутствия PyQt4-WebKit Python не может импортировать определенные модули PyQt4 QtWebKit Python 2.7.11 - ImportError: невозможно импортировать имя QtWebKit - Kali Linux / Debian 8 PyQt4: Почему я получаю «ImportError: No module QtWebkit»?

К сожалению, есть еще много результатов Google, но я считаю, что это самое подходящее для вас, если первая рекомендация не исчерпывается.

1
ответ дан 18 July 2018 в 11:57

Проверить ~/.bashrc для переопределения версии Python

Пакет, который вы хотите скомпилировать, требует Python версии 2.7.x. Подтвердите, что с помощью этих команд:

$ python Python 2.7.12 (default, Nov 19 2016, 06:48:10) [GCC 5.4.0 20160609] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import PyQt4 >>> print PyQt4.__path__ ['/usr/lib/python2.7/dist-packages/PyQt4'] >>>

Это была проблема в этом Q & amp; A.

Вы не одиноки с linux error PyQt4 import QtWebKit поиском google:

ImportError: ни один модуль с именем «PyQt4.QtWebKit» не может запускать spyder / ImportError: ни один модуль с именем QtWebKit # 3200 ImportError: Нет модуля с именем «PyQt4.QtWebKit» # 1683 Некоторые приложения PyQt4 не запускаются в Якнети из-за отсутствия PyQt4-WebKit Python не может импортировать определенные модули PyQt4 QtWebKit Python 2.7.11 - ImportError: невозможно импортировать имя QtWebKit - Kali Linux / Debian 8 PyQt4: Почему я получаю «ImportError: No module QtWebkit»?

К сожалению, есть еще много результатов Google, но я считаю, что это самое подходящее для вас, если первая рекомендация не исчерпывается.

1
ответ дан 24 July 2018 в 19:53
  • 1
    спасибо, но я не уверен, что это я, кто не понимает, или что, но я использую virtualenv, который (я считаю) помогает мне не устанавливать локально python2. учитывая, что мне не нужно беспокоиться о том, что python3 вмешивается в что-либо. исправьте меня, если я полностью упустил отметку здесь – tatsu 21 June 2017 в 18:01

Другие вопросы по тегам:

Похожие вопросы: