web-dev-qa-db-fra.com

FAF natif sur Ubuntu (QtWebKit sur Ubuntu 17.04+)

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)


État bêta Java client:

enter image description here

utilisez ce script: (mis à jour le 12/03/2019)

https://github.com/tatsujb/installFAFscript

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


Client Python: (NOW OBSOLETE)

working FAF

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!

Mise à jour (31/1/2018)

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):

  1. Installez certains prérequis: 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 (ou quelle que soit la version la plus récente à https://github.com/FAForever/client/releases/ )
  3. extraire (pour cet exemple, j'extrais à la maison) (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/: déplacer le répertoire de travail
  5. sed -i 1,1d requirements.txt: supprime cxFreeze des exigences (ce n'est pas obligatoire et cela va tuer la compilation)
  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: télécharge le binaire de connexion et: Sudo chmod +x /usr/bin/faf-uid permet son exécution par faf.
  9. 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é!

11
tatsu

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.

Python 3 avec PyQt5 (efficacité prouvée)

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 pipname__, ce qui rend les choses beaucoup plus pratiques.

Étapes pour Python 3 avec PyQt5:

  1. cddans 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
    
  2. 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 pippour 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
    
  3. Utilisez pippour installer PyQt5 et à partir de requirements.txt:

    pip install PyQt5
    pip install -r requirements.txt
    
  4. 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
    
  5. Exécutez pythonsur src/__main__.py:

    python src/__main__.py
    

Python 2 avec PyQt4 et PySide (expérimental)

Il semble que j'ai peut-être compris comment importer le module QtWebKitname__, 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é aptpour installer python-qt4, qui n’a pas le module QtWebKitname__. J'ai créé et activé virtualenv sans utiliser l'option --system-site-packages et utilisé pippour installer PySidename__, qui possède le module QtWebKitname__. 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 PySidename__. 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:

  1. Installez python-qt4:

    Sudo apt update
    Sudo apt install python-qt4
    
  2. cddans 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 patchname__:

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

    Cette branche patchcomporte plusieurs validations supplémentaires par rapport à la branche par défaut developname__: 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 QtWebKitde PySidede de PyQt4.

  3. Créez et activez virtualenv pour Python 2 et forcez la mise à niveau pipafin de vous assurer qu'elle est à jour:

    virtualenv venv
    source venv/bin/activate
    pip install -U --force-reinstall pip
    
  4. Utilisez pippour installer PySideet à partir de requirements.txt:

    pip install PySide
    pip install -r requirements.txt
    
  5. 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
    
  6. cddans 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.

  7. cdretour à faf-client et exécuter pythonsur src/__main__.py:

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

Vérifiez ~/.bashrc pour Python remplacement de version

Le 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 .

Vous n'êtes pas seul avec 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.

1
WinEunuuchs2Unix