Python 3 mit PyQt5 (funktioniert nachweislich)

Python 3 mit PyQt5 (funktioniert nachweislich)

Ich versuche, FAF (nativ) in Verbindung mit FA (über Wine) auszuführen.

(Aufgrund der Aufrufe dieses Beitrags und der Häufigkeit der Methodenaktualisierungen habe ich mich dazu entschlossen, diese Frage zu aktualisieren, damit sie nicht nur gestellt, sondern auch beantwortet werden kann. Im Revisionsverlauf dieses Beitrags finden Sie Informationen zum Auffinden der alten Methode zum Ausführen des Python-Clients und der alten Anleitungen.)


Java-Client im Beta-Status:

Bildbeschreibung hier eingeben

verwenden Sie dieses Skript:(aktualisiert am 12.03.2019)

https://github.com/tatsujb/installFAFscript

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


Python-Client: (JETZT VERALTET)

Arbeits-FAF

Vorgehensweise: Kompilierendiese Python-App(FAF) aus Quelle:

dank @edwinksls Anleitung „Python 3 mit PyQt5“ läuft es. Habe ihn als Lösung markiert. Gute Arbeit!

Aktualisierung (31.01.2018)

Es tut mir leid, dass es so lange gedauert hat, diesen Beitrag zu aktualisieren. Er wurde bereits 7.000 Mal aufgerufen! Er verdient wirklich aktuelle Informationen.

Seit meiner Frage ist viel passiert. FAF bietet jetzt mehr oder weniger Linux-Unterstützung. Es gibt sogar ein Wiki zur Installation (und pro Distribution!):

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

Es gibt keine Garantie dafür, dass es Ihren Anforderungen entspricht. Weitere Informationen finden Sie, wenn Sie tiefer graben:http://forums.faforever.com/viewtopic.php?f=2&t=4507

im Moment ist das Wiki nicht ganz auf dem neuesten Stand.

eine Zeit lang konnte ich faf mit nativem Python zum Laufen bringen, kein virtualenv nötig, aber QTs sich ständig ändernde Abhängigkeiten und Paketzusammensetzungen sowie die Verwendung dieser durch FAF haben das wieder kaputt gemacht ... vorübergehend, hoffe ich!

Seien Sie versichert, dass ich es persönlich zum Laufen gebracht habe und hier bin, um Trost zu spenden (versuchen Sie zunächst, die Schritte 6 und 7 zu überspringen, da sie möglicherweise nicht erforderlich sind):

  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 die aktuellste Version zumhttps://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/: in das Arbeitsverzeichnis wechseln
  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 Login-Binärdatei herunter und : sudo chmod +x /usr/bin/faf-uidermöglicht deren 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 lasst uns nur zum Spaß einen Runner erstellen:

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!

Antwort1

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, was die Dinge viel bequemer macht.

Schritte für Python 3 mit PyQt5:

  1. cdin ein Verzeichnis Ihrer Wahl, das ~/Desktop/tempzum Schreiben dieser Antwort dient, 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, pipum 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. Zum pipInstallieren 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. Ausführen pythonauf src/__main__.py:

    python src/__main__.py
    

Python 2 mit PyQt4 und PySide (experimentell)

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

Kurz gesagt, ich habe früher aptinstalliert python-qt4, wasnichthabe das QtWebKitModul. Ich habe eine virtuelle Umgebung erstellt und aktiviert, ohne die --system-site-packagesOption zu verwenden, und habe verwendet, pipum zu installieren PySide, was das Modul hat QtWebKit. Dann habe ich die entsprechenden Systembibliotheken und Dateien für PyQt4 symbolisch in die virtuelle Umgebung verknüpft. Dann habe ich ein paar Änderungen vorgenommen, um faf-client/srcdas QtWebKitModul von zu importieren PySide. Diese Lösung ist inspiriert vonhttps://stackoverflow.com/a/28850104/486919,https://stackoverflow.com/a/36887302/486919Undhttps://stackoverflow.com/a/37616466/486919.

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, git clonemeiner Version des Repository und git checkoutdes patchZweigs dienen wird:

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

    Dieser patchZweig weist im Vergleich zum Standardzweig mehrere zusätzliche Commits auf develop: 1) Er entfernt die Versionsspezifikation für cx_Freeze, die bei mir zu Installationsproblemen führte, wenn ich die 4.3.4zuvor angegebene Version verwendete, und 2) er importiert QtWebKitvon PySidestatt von PyQt4.

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

    virtualenv venv
    source venv/bin/activate
    pip install -U --force-reinstall pip
    
  4. Zum pipInstallieren 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. cdzum site-packagesVerzeichnis innerhalb der virtuellen Umgebung und erstellen Sie entsprechende symbolische Links:

    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 symbolischen Links.

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

    cd -  # this goes back to previous directory, which should be ~/Desktop/temp/faf-client
    python src/__main__.py
    

Antwort2

~/.bashrcAuf Überschreibung der Python-Version prüfen

Das Paket, das Sie kompilieren möchten, erfordert Python Version 2.7.x. Bestätigen Sie dies mit diesen 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 diesemFragen und Antworten.

Mit der Google-Suche sind Sie nicht allein linux error PyQt4 import QtWebKit:

Leider gibt es noch viel mehr Google-Ergebnisse, aber ich glaube, diese sind für Sie am relevantesten.WennDie erste Empfehlung geht nicht auf.

verwandte Informationen