J'essaie de lancer FAF (nativement) en conjonction avec FA (via wine)
(En raison des opinions reçues par cet article et de la quantité de mises à jour des méthodes, j'ai décidé de mettre à jour cette question afin que celle-ci réponde et pose des questions. Consultez l'historique de révision de cet article pour connaître le processus de recherche de l'ancienne méthode. python client et les anciens guides)
utilisez ce script: (mis à jour le 12/03/2019)
https://github.com/tatsujb/installFAFscript
https://www.youtube.com/watch?v=BEWUEo88Q4k
Comment: compiler this python app (FAF) à partir du source:
opérationnel grâce au guide "Python 3 avec PyQt5" de @edwinksl. l'a marqué comme solution. bon travail!
Désolé j'ai pris si longtemps pour mettre à jour ce post. ça fait 7000 vues! il mérite vraiment des informations à jour.
Depuis que j'ai demandé beaucoup de choses se sont passées. FAF a maintenant plus ou moins de support Linux. ils ont même un wiki pour l'installer (et par distro!):
https://wiki.faforever.com/index.php?title=Setting_Up_FAF_Linux#Debian.2FUbunt
il n’est pas garanti de répondre à vos besoins, vous pouvez en trouver d’autres en creusant: http://forums.faforever.com/viewtopic.php?f=2&t=4507
pour le moment, le wiki n'est pas encore à jour.
pendant un certain temps, je pouvais faire fonctionner faf avec du python natif, pas besoin de virtualenv, mais les dépendances changeantes de QT et la composition des paquets ainsi que leur utilisation par le FAF ont encore cassé cela ... temporairement, j'espère!
rassurez-vous, je le lance personnellement et je suis ici pour vous réconforter (essayez de sauter les étapes 6 et 7 au préalable, elles risquent de ne pas être utiles):
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
(ou quelle que soit la version la plus récente à https://github.com/FAForever/client/releases/ )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/
: déplacer le répertoire de travailsed -i 1,1d requirements.txt
: supprime cxFreeze des exigences (ce n'est pas obligatoire et cela va tuer la compilation)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
: télécharge le binaire de connexion et: Sudo chmod +x /usr/bin/faf-uid
permet son exécution par faf.touch res/RELEASE-VERSION && echo "0.16.1" >> res/RELEASE-VERSION
: répond à l'exigence finale de faf: un fichier de version.maintenant il devrait courir mais pour le plaisir de faire un coureur:
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
puis ./FAF.sh
pour exécuter le FAF.
À votre santé!
Remarque: il a été prouvé que les étapes pour Python 3 avec PyQt5 fonctionnaient, tandis que les étapes pour Python 2 avec PyQt4 et PySide sont toujours expérimentales.
Il semble que la branche 474-feature-py3
du référentiel GitHub de FAForever/client utilise Python 3 avec PyQt5, qui contient QtWebKit. Par conséquent, l’utilisation de cette branche est la solution la plus simple. Notez que PyQt5 (mais pas PyQt4) peut en fait être installé avec pip
name__, ce qui rend les choses beaucoup plus pratiques.
Étapes pour Python 3 avec PyQt5:
cd
dans un répertoire de votre choix, qui sera ~/Desktop/temp
afin d'écrire cette réponse, git clone
le référentiel FAForever/client GitHub et git checkout
la 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
Créez et activez virtualenv pour Python 3 (la valeur par défaut est Python 3.5 pour Ubuntu 17.04) et forcez la mise à niveau de pip
pour vous assurer qu'elle est à jour:
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
Utilisez pip
pour installer PyQt5
et à partir de requirements.txt
:
pip install PyQt5
pip install -r requirements.txt
Téléchargez le binaire faf-uid
dans faf-client/lib
et rendez-le exécutable:
wget https://github.com/FAForever/uid/releases/download/v4.0.4/faf-uid -O lib/faf-uid
chmod +x lib/faf-uid
Exécutez python
sur src/__main__.py
:
python src/__main__.py
Il semble que j'ai peut-être compris comment importer le module QtWebKit
name__, mais je n'ai pas installé le jeu FAF, je ne peux donc pas entièrement vérifier que cela fonctionne et, par conséquent, cette réponse est un travail en cours.
En un mot, j’ai utilisé apt
pour installer python-qt4
, qui n’a pas le module QtWebKit
name__. J'ai créé et activé virtualenv sans utiliser l'option --system-site-packages
et utilisé pip
pour installer PySide
name__, qui possède le module QtWebKit
name__. J'ai ensuite lié symboliquement les bibliothèques système et les fichiers appropriés à PyQt4 dans virtualenv. Ensuite, j'ai apporté quelques modifications à faf-client/src
pour importer le module QtWebKit
à partir de PySide
name__. Cette solution est inspirée par https://stackoverflow.com/a/28850104/486919 , https://stackoverflow.com/a/36887302/486919 et https://stackoverflow.com/a/37616466/486919 .
Pas:
Installez python-qt4
:
Sudo apt update
Sudo apt install python-qt4
cd
dans un répertoire de votre choix, qui sera ~/Desktop/temp
afin d'écrire cette réponse, git clone
ma version du référentiel et git checkout
la patch
name__:
mkdir ~/Desktop/temp
cd ~/Desktop/temp
git clone https://github.com/edwinksl/client.git faf-client
cd faf-client
git checkout patch
Cette branche patch
comporte plusieurs validations supplémentaires par rapport à la branche par défaut develop
name__: 1) elle supprime la spécification de version pour cx_Freeze
, ce qui me posait des problèmes d'installation si j'utilisais la version 4.3.4
précédemment spécifiée, et 2) il importait QtWebKit
de PySide
de de PyQt4
.
Créez et activez virtualenv pour Python 2 et forcez la mise à niveau pip
afin de vous assurer qu'elle est à jour:
virtualenv venv
source venv/bin/activate
pip install -U --force-reinstall pip
Utilisez pip
pour installer PySide
et à partir de requirements.txt
:
pip install PySide
pip install -r requirements.txt
Téléchargez le binaire faf-uid
dans faf-client/lib
et rendez-le exécutable:
wget https://github.com/FAForever/uid/releases/download/v4.0.4/faf-uid -O lib/faf-uid
chmod +x lib/faf-uid
cd
dans le répertoire site-packages
à l'intérieur de virtualenv et créez les liens symboliques appropriés:
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 .
Notez le .
à la fin de chaque lien symbolique.
cd
retour à faf-client
et exécuter python
sur src/__main__.py
:
cd - # this goes back to previous directory, which should be ~/Desktop/temp/faf-client
python src/__main__.py
~/.bashrc
pour Python remplacement de versionLe paquet que vous voulez compiler nécessite Python version 2.7.x. Confirmez cela avec ces commandes:
$ 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']
>>>
C'était le problème dans ce Q & A .
linux error PyQt4 import QtWebKit
google search:Malheureusement, il y a beaucoup plus de résultats sur Google, mais ceux-ci sont, à mon sens, les plus pertinents à lire si la première recommandation ne fonctionne pas.