собственный FAF на человечности (QtWebKit на человечности 17.04 +)

Я пытаюсь выполнить FAF (исходно) в сочетании с FA (через вино)

(из-за представлений это сообщение получает и к тому, сколько обновили методы, я решил обновить этот вопрос для него, чтобы ответить, а также спросить. проверьте историю пересмотра этого сообщения для процесса к нахождению, что старый метод выполняет клиент Python и старые руководства),


Клиент Java состояния бетой:

enter image description here

используйте этот сценарий: (обновленный 12.03.2019)

https://github.com/tatsujb/installFAFscript

https://www.youtube.com/watch? v=BEWUEoQ8Q4k


Клиент Python: (ТЕПЕРЬ УСТАРЕВШИЙ)

working FAF

Как к: скомпилируйте это приложение Python (FAF) из источника:

и выполнение благодаря "Python 3 @edwinksl с PyQt5" руководство. отмеченный его как решение. хорошее задание!

Обновление (31/1/2018)

Извините я занял много времени для обновления этого сообщения. это получило 7 000 представлений! это действительно заслуживает актуальной информации.

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

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

это, как гарантируют, не будет соответствовать Вашим потребностям, больше может быть найдено путем закапывания: http://forums.faforever.com/viewtopic.php?f=2&t=4507

прямо сейчас Wiki не все это актуальное.

некоторое время я мог заставить faf работать с собственным Python, никакие необходимые virtualenv, но QT не утверждают, изменяя зависимости и состав пакета, а также использование FAF их повредило это, снова... временно я надеюсь!

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

  1. Установите некоторые предпосылки: sudo apt update && sudo apt install wget PyQt5.QtMultimedia python3-idna python3-semantic-version python3-pyqt5 python3-pyqt5.qtwebengine
  2. cd Downloads && wget https://github.com/FAForever/client/archive/0.16.1.tar.gz (или какой бы ни выпуск является последним в https://github.com/FAForever/client/releases/),
  3. извлечение (для этого примера я извлеку для размещения) (cd Downloads/ && mv client-0.16.1.tar.gz ~/ && cd && tar -zxf client-0.16.1.tar.gz && mv client-0.16.1 faf-client && rm client-0.16.1.tar.gz)
  4. cd fafclient/ : переместитесь в рабочий каталог
  5. sed -i 1,1d requirements.txt : удаляет cxFreeze из требований (он не требуется, и он уничтожит компиляцию),
  6. virtualenv -p python3 faf
  7. pip install -r requirements.txt
  8. 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 позволяет этому выполняться faf.
  9. touch res/RELEASE-VERSION && echo "0.16.1" >> res/RELEASE-VERSION : выполняет заключительное требование faf: файл версии выпуска.

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

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 выполнять FAF.

Удачи!

11
задан 14 April 2019 в 12:09

2 ответа

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

Python 3 с PyQt5 (доказано, что он работает)

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

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

  1. cd в каталог по вашему выбору, который будет ~/Desktop/temp с целью написания этого ответа, git clone FAForever / клиент 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
    
  2. Создать и активировать 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
    
  3. Используйте pip для установки PyQt5 и из requirements.txt:

    pip install PyQt5
    pip install -r requirements.txt
    
  4. Загрузите двоичный файл 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
    
  5. Запустите 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.

Шаги:

  1. Установите python-qt4:

    sudo apt update
    sudo apt install python-qt4
    
  2. cd в каталог по вашему выбору, который будет ~/Desktop/temp с целью написания этого ответа, git clone моя версия репозитория и git checkout ветвь patch:

    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.

  3. Создайте и активируйте virtualenv для Python 2 и принудительно обновите pip, чтобы убедиться, что он обновлен:

    virtualenv venv
    source venv/bin/activate
    pip install -U --force-reinstall pip
    
  4. Использовать [ 1152] для установки PySide и из requirements.txt:

    pip install PySide
    pip install -r requirements.txt
    
  5. Загрузите двоичный файл 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
    
    [ 1179]
  6. cd перейдите в каталог site-packages внутри virtualenv и создайте соответствующие символические ссылки:

    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 .
    

    Обратите внимание на . в конце каждой символической ссылки.

    [ 1180]
  7. cd вернуться к faf-client и запустить python на src/__main__.py:

    cd -  # this goes back to previous directory, which should be ~/Desktop/temp/faf-client
    python src/__main__.py
    
0
ответ дан 14 April 2019 в 12:09

Проверьте ~/.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 & A .

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

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

0
ответ дан 14 April 2019 в 12:09

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

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