native FAF auf Ubuntu (QtWebKit auf Ubuntu 17.04+)

11

Ich versuche, FAF (nativ) in Verbindung mit FA (durch Wein) zu betreiben.

(Aufgrund der Ansichten, die dieser Beitrag erhält, und der Anzahl der aktualisierten Methoden habe ich beschlossen, diese Frage zu aktualisieren, damit sie beantwortet und gefragt werden kann. Überprüfen Sie den Revisionsverlauf dieses Beitrags, um festzustellen, ob die alte Methode zum Ausführen der Methode gefunden wurde Python-Client und die alten Anleitungen)


Java-Client im Beta-Status:

Geben Sie hier die Bildbeschreibung ein

Verwenden Sie dieses Skript: (aktualisiert am 12.03.2019)

https://github.com/tatsujb/installFAFscript

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


Python-Client: (JETZT OBSOLETE)

arbeitende FAF

Gewusst wie: Kompilieren Sie diese Python-App (FAF) aus dem Quellcode:

Dank @edwinksls "Python 3 with PyQt5" -Anleitung. markierte ihn als Lösung. Gut gemacht!

Update (31/1/2018)

Entschuldigung, ich habe so lange gebraucht, um diesen Beitrag zu aktualisieren. Es hat 7000 Aufrufe bekommen! Es verdient wirklich aktuelle Informationen.

Seit ich gefragt habe ist viel passiert. FAF hat jetzt mehr oder weniger Linux-Unterstützung. Sie haben sogar ein Wiki, um es zu installieren (und per Distribution!):

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

Es wird nicht garantiert, dass es Ihren Anforderungen entspricht. Weitere Informationen finden Sie unter: http://forums.faforever.com/viewtopic.php?f=2&t=4507

Im Moment ist das Wiki nicht so aktuell.

Für eine Weile konnte ich faf dazu bringen, mit nativem Python zu laufen, es wurde keine virtuelle Umgebung benötigt, aber die sich durchschnittlich ändernden Abhängigkeiten und die Paketzusammensetzung von QT sowie die FAF-Verwendung von ihnen haben das wieder gebrochen ... vorübergehend hoffe ich!

Seien Sie versichert, ich habe es persönlich zum Laufen gebracht und bin hier, um Trost zu spenden (überspringen Sie zuerst die Schritte 6 und 7, da sie möglicherweise nicht benötigt werden):

  1. Installieren Sie einige Voraussetzungen: 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(oder welche Version auch immer aktuell ist unter https://github.com/FAForever/client/releases/ )
  3. extrahieren (für dieses Beispiel extrahiere ich nach Hause) ( 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/ : Wechseln Sie in das Arbeitsverzeichnis
  5. sed -i 1,1d requirements.txt : Entfernt cxFreeze aus den Anforderungen (es ist nicht erforderlich und beendet die Kompilierung)
  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: lädt die Anmeldebinärdatei herunter und: sudo chmod +x /usr/bin/faf-uidermöglicht die Ausführung durch faf.
  9. touch res/RELEASE-VERSION && echo "0.16.1" >> res/RELEASE-VERSION : Erfüllt die letzte Anforderung von faf: eine Release-Versionsdatei.

jetzt sollte es laufen, aber zum Teufel machen wir einen Läufer:

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

dann ./FAF.shFAF ausführen.

Prost!

Tatsu
quelle
Siehe wiki.qt.io/Building_Qt_5_from_Git . Wenn Sie immer noch ein Problem haben, wenden Sie sich direkt an die qtwebkit-Betreuer.
Panther
t@tsu:~$ sudo apt-get build-dep qt5-default Reading package lists... Done E: You must put some 'source' URIs in your sources.list
Tatsu
Also setzen Sie Quelle uri in - askubuntu.com/questions/496549/…
Panther
2
@tatsu Ich glaube, ich habe es geschafft, QtWebKit zum Laufen zu bringen, aber ich habe kein FAF-Spiel, daher kann ich nicht vollständig überprüfen, ob dies funktioniert. Lassen Sie mich versuchen, einen Chatroom einzurichten, damit wir darüber diskutieren können.
Edwinksl
2
@tatsu Inzwischen habe ich eine Antwort geschrieben. Probieren Sie es aus und sehen Sie, ob es hilft.
Edwinksl

Antworten:

4

Hinweis: Die Schritte für Python 3 mit PyQt5 funktionieren nachweislich, während die Schritte für Python 2 mit PyQt4 und PySide noch experimentell sind.

Python 3 mit PyQt5 (funktioniert nachweislich)

Es scheint, dass der 474-feature-py3Zweig des FAForever / Client-GitHub-Repositorys Python 3 mit PyQt5 verwendet, das QtWebKit enthält. Daher ist die Verwendung dieses Zweigs die einfachste Lösung. Beachten Sie, dass PyQt5 (aber nicht PyQt4) tatsächlich mit installiert werden kann pip, so dass die Dinge viel bequemer sind.

Schritte für Python 3 mit PyQt5:

  1. cdin ein Verzeichnis Ihrer Wahl, das ~/Desktop/tempzum Schreiben dieser Antwort verwendet wird, git clonedas FAForever / Client-GitHub-Repository und git checkoutden 474-feature-py3Zweig:

    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. Erstellen und aktivieren Sie eine virtuelle Umgebung für Python 3 (die Standardeinstellung ist Python 3.5 für Ubuntu 17.04) und erzwingen Sie ein Upgrade pip, um sicherzustellen, dass es auf dem neuesten Stand ist:

    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. Verwenden Sie pipzum Installieren PyQt5und von requirements.txt:

    pip install PyQt5
    pip install -r requirements.txt
    
  4. Laden Sie die faf-uidBinärdatei herunter faf-client/libund machen Sie sie ausführbar:

    wget https://github.com/FAForever/uid/releases/download/v4.0.4/faf-uid -O lib/faf-uid
    chmod +x lib/faf-uid
    
  5. Laufen Sie pythonweiter src/__main__.py:

    python src/__main__.py
    

Python 2 mit PyQt4 und PySide (experimentell)

Es sieht so aus, als hätte ich vielleicht herausgefunden, wie man das QtWebKitModul importiert , aber ich habe das FAF-Spiel nicht installiert, daher kann ich nicht vollständig überprüfen, ob dies funktioniert, und daher ist diese Antwort in Arbeit.

Auf den Punkt gebracht, habe ich aptzu installieren python-qt4, die nicht nicht das haben QtWebKitModul. Ich habe eine virtuelle Umgebung ohne Verwendung der --system-site-packagesOption erstellt und aktiviert und pipzur Installation verwendet PySide, die das QtWebKitModul enthält. Ich habe dann die entsprechenden Systembibliotheken und Dateien für PyQt4 mit der virtuellen Umgebung verknüpft. Dann habe ich ein paar Änderungen vorgenommen faf-client/src, um das QtWebKitModul von zu importieren PySide. Diese Lösung wurde von /programming//a/28850104/486919 , /programming//a/36887302/486919 und /programming//a/37616466/486919 inspiriert .

Schritte:

  1. Installieren python-qt4:

    sudo apt update
    sudo apt install python-qt4
    
  2. cdin ein Verzeichnis Ihrer Wahl, das ~/Desktop/tempzum Schreiben dieser Antwort verwendet wird, git clonemeine Version des Repositorys und git checkoutdes patchZweigs:

    mkdir ~/Desktop/temp
    cd ~/Desktop/temp
    git clone https://github.com/edwinksl/client.git faf-client
    cd faf-client
    git checkout patch
    

    Dieser patchZweig hat im Vergleich zum Standardzweig mehrere zusätzliche Commits develop: 1) Er entfernt die Versionsspezifikation für cx_Freeze, die mir Installationsprobleme bereitete, wenn ich die 4.3.4zuvor angegebene Version verwendet habe, und 2) Importiert QtWebKitvon PySidestatt PyQt4.

  3. Erstellen und aktivieren Sie eine virtuelle Umgebung für Python 2 und erzwingen Sie ein Upgrade pip, um sicherzustellen, dass sie auf dem neuesten Stand ist:

    virtualenv venv
    source venv/bin/activate
    pip install -U --force-reinstall pip
    
  4. Verwenden Sie pipzum Installieren PySideund von requirements.txt:

    pip install PySide
    pip install -r requirements.txt
    
  5. Laden Sie die faf-uidBinärdatei herunter faf-client/libund machen Sie sie ausführbar:

    wget https://github.com/FAForever/uid/releases/download/v4.0.4/faf-uid -O lib/faf-uid
    chmod +x lib/faf-uid
    
  6. cdin das site-packagesVerzeichnis innerhalb der virtuellen Umgebung und machen Sie entsprechende Symlinks:

    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 .
    

    Beachten Sie das .am Ende jedes Symlinks.

  7. cdzurück zu faf-clientund laufen pythonauf src/__main__.py:

    cd -  # this goes back to previous directory, which should be ~/Desktop/temp/faf-client
    python src/__main__.py
    
edwinksl
quelle
Zunächst einmal danke! und sorry, ich habe die Warteschlange verpasst. Ich wurde ins Krankenhaus eingeliefert. Ich stecke fest bei: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
@tatsu Mein schlechtes. Sie müssen zuerst cdin das faf-clientVerzeichnis gehen und dann tun git checkout patch.
Edwinksl
@edwinskl yup !! und cd sichern, sobald das erledigt ist!
Tatsu
@edwinskl direkt nach dem pip install -r faf-client/requirements.txt Hinzufügen wget https://github.com/FAForever/uid/releases/download/v4.0.4/faf-uid -O ./faf-client/lib/faf-uid und chmod +x ./faf-client/lib/faf-uiddann cd ./faf-client && ../venv/bin/python src/__main__.py gemäß dem ursprünglichen Beitrag im Tutorial-Forum, mit dem ich mein Skript erstellt habe: forums.faforever.com/… FAF wird ausgeführt, aber immer noch mit einem Fehlerprotokoll.
Tatsu
@tatsu Fühlen Sie sich frei, Änderungen vorzuschlagen! Immerhin haben Sie das Spiel installiert, während ich nicht ...
edwinksl
1

Überprüfen Sie, ob die ~/.bashrcPython-Version überschrieben wurde

Das Paket, das Sie kompilieren möchten, erfordert Python Version 2.7.x. Bestätigen Sie dies mit folgenden Befehlen:

$ 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']
>>> 

Das war das Problem in dieser Frage und Antwort .

Sie sind nicht allein mit der linux error PyQt4 import QtWebKitGoogle-Suche:

Leider gibt es viel mehr Google-Ergebnisse, aber diese sind meiner Meinung nach am relevantesten für Sie, wenn die erste Empfehlung nicht herauskommt.

WinEunuuchs2Unix
quelle
danke, aber ich bin mir nicht sicher, ob ich es nicht verstehe oder was, aber ich verwende virtualenv, was mir (glaube ich) hilft, python2 nicht lokal installieren zu müssen. da ich mir keine Sorgen machen sollte, dass sich Python3 in irgendetwas einmischt. Korrigieren Sie mich, wenn ich die Marke hier komplett verfehlt habe
Tatsu