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:
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)
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):
- Installieren Sie einige Voraussetzungen:
sudo apt update && sudo apt install wget PyQt5.QtMultimedia python3-idna python3-semantic-version python3-pyqt5 python3-pyqt5.qtwebengine
cd Downloads && wget https://github.com/FAForever/client/archive/0.16.1.tar.gz
(oder die aktuellste Version zumhttps://github.com/FAForever/client/releases/)- 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
) cd fafclient/
: in das Arbeitsverzeichnis wechselnsed -i 1,1d requirements.txt
: entfernt cxFreeze aus den Anforderungen (es ist nicht erforderlich und beendet die Kompilierung)virtualenv -p python3 faf
pip install -r requirements.txt
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-uid
ermöglicht deren Ausführung durch faf.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.sh
FAF 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-py3
Zweig 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:
cd
in ein Verzeichnis Ihrer Wahl, das~/Desktop/temp
zum Schreiben dieser Antwort dient,git clone
das FAForever/Client-GitHub-Repository undgit checkout
den474-feature-py3
Zweig:mkdir ~/Desktop/temp cd ~/Desktop/temp git clone https://github.com/FAForever/client.git faf-client cd faf-client git checkout 474-feature-py3
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
Zum
pip
InstallierenPyQt5
und vonrequirements.txt
:pip install PyQt5 pip install -r requirements.txt
Laden Sie die
faf-uid
Binärdatei herunterfaf-client/lib
und 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
Ausführen
python
aufsrc/__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 QtWebKit
Modul 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 apt
installiert python-qt4
, wasnichthabe das QtWebKit
Modul. Ich habe eine virtuelle Umgebung erstellt und aktiviert, ohne die --system-site-packages
Option zu verwenden, und habe verwendet, pip
um 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/src
das QtWebKit
Modul 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:
Installieren
python-qt4
:sudo apt update sudo apt install python-qt4
cd
in ein Verzeichnis Ihrer Wahl, das~/Desktop/temp
zum Schreiben dieser Antwort,git clone
meiner Version des Repository undgit checkout
despatch
Zweigs 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
patch
Zweig weist im Vergleich zum Standardzweig mehrere zusätzliche Commits aufdevelop
: 1) Er entfernt die Versionsspezifikation fürcx_Freeze
, die bei mir zu Installationsproblemen führte, wenn ich die4.3.4
zuvor angegebene Version verwendete, und 2) er importiertQtWebKit
vonPySide
statt vonPyQt4
.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
Zum
pip
InstallierenPySide
und vonrequirements.txt
:pip install PySide pip install -r requirements.txt
Laden Sie die
faf-uid
Binärdatei herunterfaf-client/lib
und 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
cd
zumsite-packages
Verzeichnis 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.cd
zurück zufaf-client
undpython
weiterlaufensrc/__main__.py
:cd - # this goes back to previous directory, which should be ~/Desktop/temp/faf-client python src/__main__.py
Antwort2
~/.bashrc
Auf Ü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
:
- ImportError: Kein Modul mit dem Namen „PyQt4.QtWebKit“
- Spyder kann nicht ausgeführt werden / ImportError: Kein Modul mit dem Namen QtWebKit #3200
- ImportError: Kein Modul mit dem Namen „PyQt4.QtWebKit“ #1683
- Einige PyQt4-Anwendungen können in Yakkety aufgrund fehlenden PyQt4-WebKits nicht gestartet werden
- Python kann bestimmte PyQt4 QtWebKit-Module nicht importieren
- Python 2.7.11 – ImportError: Name QtWebKit kann nicht importiert werden – Kali Linux / Debian 8
- PyQt4: Warum erhalte ich „ImportError: Kein Modul mit dem Namen 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.