FAF natif sur ubuntu (QtWebKit sur ubuntu 17.04+)

11

J'essaie d'exécuter FAF (nativement) en conjonction avec FA (via wine)

(en raison des vues que ce message reçoit et de la quantité de méthodes mises à jour, j'ai décidé de mettre à jour cette question pour qu'elle réponde et que je demande. consultez l'historique des révisions de ce message pour le processus de recherche de l'ancienne méthode pour exécuter le client python et les anciens guides)


Client Java bêta:

entrez la description de l'image ici

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

https://github.com/tatsujb/installFAFscript

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


Client Python: (MAINTENANT OBSOLETE)

FAF de travail

Comment: compiler cette application python (FAF) à partir de la 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é d'avoir mis si longtemps à mettre à jour ce message. il a obtenu 7000 vues! il mérite vraiment des informations à jour.

Depuis que j'ai demandé, il s'est passé beaucoup de choses. FAF a maintenant plus ou moins de support Linux. ils ont même un wiki pour l'installer (et par distribution!):

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

il n'est pas garanti de répondre à vos besoins, vous pouvez en trouver plus en fouillant: http://forums.faforever.com/viewtopic.php?f=2&t=4507

en ce moment le wiki n'est pas du tout à jour.

pendant un certain temps, je pouvais faire fonctionner faf avec python natif, aucun virtualenv nécessaire, mais les dépendances changeantes moyennes de QT et la composition du paquet ainsi que leur utilisation par FAF ont encore cassé cela ... temporairement j'espère!

soyez assuré que je l'ai fait fonctionner personnellement et je suis ici pour offrir du réconfort (essayez de sauter les étapes 6 et 7 d'abord, elles peuvent être inutiles):

  1. Installez quelques 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 selon la dernière version disponible sur https://github.com/FAForever/client/releases/ )
  3. extraire (pour cet exemple, je vais extraire à 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/ : passer au répertoire de travail
  5. sed -i 1,1d requirements.txt : supprime cxFreeze des exigences (ce n'est pas obligatoire et cela tuera 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-uidpermet son exécution par faf.
  9. touch res/RELEASE-VERSION && echo "0.16.1" >> res/RELEASE-VERSION : remplit la dernière exigence du faf: un fichier de version de sortie.

maintenant, il devrait fonctionner, mais pour le diable, faisons 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.shpour exécuter FAF.

À votre santé!

tatsu
la source
Voir wiki.qt.io/Building_Qt_5_from_Git . Si vous rencontrez toujours un problème, contactez directement les responsables de qtwebkit.
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
Alors mettez la source uri dedans
Panther
2
@tatsu Je pense que j'ai réussi à faire fonctionner QtWebKit mais je n'ai pas le jeu FAF, donc je ne peux pas vérifier complètement que cela fonctionne. Permettez-moi d'essayer de mettre en place un salon de discussion afin que nous puissions en discuter.
edwinksl
2
@tatsu Pendant ce temps, j'ai écrit une réponse. Essayez-le et voyez si cela aide.
edwinksl

Réponses:

4

Remarque: les étapes pour Python 3 avec PyQt5 sont prouvées pour fonctionner tandis que les étapes pour Python 2 avec PyQt4 et PySide sont encore expérimentales.

Python 3 avec PyQt5 (qui a fait ses preuves)

Il semble que la 474-feature-py3branche du référentiel FAForever / client GitHub 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, 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/tempdans le but d'écrire cette réponse, git clonele référentiel FAForever / client GitHub et git checkoutla 474-feature-py3branche:

    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 un virtualenv pour Python 3 (la valeur par défaut est Python 3.5 pour Ubuntu 17.04) et forcez la mise pipà niveau juste pour vous assurer qu'il 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 PyQt5et à partir de requirements.txt:

    pip install PyQt5
    pip install -r requirements.txt
    
  4. Téléchargez le faf-uidbinaire dans faf-client/libet 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'aie peut-être compris comment importer le QtWebKitmodule, mais je n'ai pas le jeu FAF installé, donc je ne peux pas vérifier complètement que cela fonctionne et donc cette réponse est un travail en cours.

En un mot, j'avais l'habitude aptd'installer python-qt4, qui n'a pas le QtWebKitmodule. J'ai créé et activé un virtualenv sans utiliser l' --system-site-packagesoption et utilisé pippour installer PySide, qui a le QtWebKitmodule. J'ai ensuite créé un lien symbolique entre les bibliothèques système et les fichiers appropriés pour PyQt4 dans virtualenv. Ensuite, j'ai apporté quelques modifications faf-client/srcpour importer le QtWebKitmodule à partir de PySide. Cette solution est inspirée de /programming//a/28850104/486919 , /programming//a/36887302/486919 et /programming//a/37616466/486919 .

Pas:

  1. Installer python-qt4:

    sudo apt update
    sudo apt install python-qt4
    
  2. cddans un répertoire de votre choix, qui sera ~/Desktop/tempdans le but d'écrire cette réponse, git clonema version du référentiel et de git checkoutla patchbranche:

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

    Cette patchbranche a plusieurs validations supplémentaires par rapport à la developbranche par défaut : 1) elle supprime la spécification de version pour cx_Freeze, ce qui me posait des problèmes d'installation si j'utilisais la 4.3.4version précédemment spécifiée, et 2) elle importe QtWebKità la PySideplace de PyQt4.

  3. Créez et activez un virtualenv pour Python 2 et forcez la mise pipà niveau juste pour vous assurer qu'il 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 faf-uidbinaire dans faf-client/libet 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 site-packagesrépertoire à l'intérieur de virtualenv et créez des 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-clientet exécuter pythonsur src/__main__.py:

    cd -  # this goes back to previous directory, which should be ~/Desktop/temp/faf-client
    python src/__main__.py
    
edwinksl
la source
tout d'abord merci! et désolé d'avoir raté la file d'attente. J'ai été hospitalisé. Je suis coincé à: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 My bad. Vous devez d'abord cddans le faf-clientrépertoire, puis faites git checkout patch.
edwinksl
@edwinskl yup !! et sauvegardez le CD une fois que c'est fait!
tatsu
@edwinskl juste après pip install -r faf-client/requirements.txt avoir ajouté wget https://github.com/FAForever/uid/releases/download/v4.0.4/faf-uid -O ./faf-client/lib/faf-uid , chmod +x ./faf-client/lib/faf-uidpuis fait cd ./faf-client && ../venv/bin/python src/__main__.py selon le post du forum du didacticiel d'origine, j'ai construit mon script avec: forums.faforever.com/… FAF s'exécute mais toujours avec un journal des erreurs.
tatsu
@tatsu N'hésitez pas à suggérer des modifications! Après tout, vous avez installé le jeu alors que je ne le fais pas ...
edwinksl
1

Vérifier le ~/.bashrcremplacement de version Python

Le package que vous souhaitez 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 cette Q&R .

Vous n'êtes pas seul avec la linux error PyQt4 import QtWebKitrecherche google:

Malheureusement, il y a beaucoup plus de résultats Google, mais ceux-ci, je pense, sont les plus pertinents à lire si la première recommandation ne fonctionne pas.

WinEunuuchs2Unix
la source
merci mais je ne sais pas si c'est moi qui ne comprends pas ou quoi mais j'utilise virtualenv qui (je crois) m'aide à ne pas avoir à installer localement python2. étant donné que je ne devrais pas avoir à me soucier de l'ingérence de python3 avec quoi que ce soit. corrigez-moi si j'ai complètement raté la marque ici
tatsu