FAF nativo su Ubuntu (QtWebKit su Ubuntu 17.04+)


11

Sto cercando di gestire FAF (nativamente) insieme a FA (attraverso il vino)

(a causa delle opinioni che questo post riceve e di quanto i metodi hanno aggiornato, ho deciso di aggiornare questa domanda per rispondere e chiedere. Controlla la cronologia delle revisioni di questo post per il processo per trovare il vecchio metodo per eseguire il client Python e le vecchie guide)


Client Java beta-state:

inserisci qui la descrizione dell'immagine

usa questo script: (aggiornato il 3/12/2019)

https://github.com/tatsujb/installFAFscript

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


Client Python: (ORA OBSOLETO)

FAF di lavoro

Procedura: compilare questa app Python (FAF) dall'origine:

attivo e funzionante grazie alla guida "Python 3 con PyQt5" di @edwinksl. lo ha segnato come soluzione. buon lavoro!

Aggiornamento (31/1/2018)

Mi dispiace di aver impiegato così tanto tempo per aggiornare questo post. ha ottenuto 7000 visualizzazioni! merita davvero informazioni aggiornate.

Da quando ho chiesto molto è successo. FAF ora ha più o meno supporto per Linux. hanno anche un wiki per installarlo (e per distribuzione!):

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

non è garantito per soddisfare le tue esigenze, puoi trovare ulteriori informazioni scavando in: http://forums.faforever.com/viewtopic.php?f=2&t=4507

in questo momento il wiki non è così aggiornato.

per un po 'sono riuscito a far funzionare Faf con Python nativo, non avevo bisogno di virtualenv, ma le dipendenze e la composizione dei pacchetti di QT che cambiano in media, così come il loro uso da parte del FAF, hanno rotto di nuovo ... temporaneamente spero!

ti assicuro che l'ho fatto funzionare personalmente e sono qui per offrire conforto (prova a saltare i passaggi 6 e 7 prima che potrebbero non essere necessari):

  1. Installa alcuni prerequisiti: 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(o qualsiasi versione più recente è disponibile su https://github.com/FAForever/client/releases/ )
  3. extract (per questo esempio estrarrò a home) ( 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/ : passa alla directory di lavoro
  5. sed -i 1,1d requirements.txt : rimuove cxFreeze dai requisiti (non è richiesto e ucciderà la compilazione)
  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: scarica il file binario di accesso e: sudo chmod +x /usr/bin/faf-uidconsente l'esecuzione da parte di faf.
  9. touch res/RELEASE-VERSION && echo "0.16.1" >> res/RELEASE-VERSION : soddisfa il requisito finale di faf: un file della versione di rilascio.

ora dovrebbe funzionare ma, diamine, facciamo un corridore:

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

quindi ./FAF.sheseguire FAF.

Saluti!


Vedi wiki.qt.io/Building_Qt_5_from_Git . Se il problema persiste, contattare direttamente i manutentori di qtwebkit.
Pantera,

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,

Quindi inserisci la fonte uri - askubuntu.com/questions/496549/…
Panther

2
@tatsu Penso di essere riuscito a far funzionare QtWebKit ma non ho il gioco FAF, quindi non posso verificare completamente che funzioni. Vorrei provare a creare una chat room in modo che possiamo discutere.
edwinksl,

2
@tatsu Nel frattempo ho scritto una risposta. Provalo e vedi se aiuta.
edwinksl,

Risposte:


4

Nota: i passaggi per Python 3 con PyQt5 hanno dimostrato di funzionare mentre i passaggi per Python 2 con PyQt4 e PySide sono ancora sperimentali.

Python 3 con PyQt5 (provato a funzionare)

Sembra che il 474-feature-py3ramo del repository GitHub / client FAForever utilizzi Python 3 con PyQt5, che contiene QtWebKit. Pertanto, l'utilizzo di questo ramo è la soluzione più semplice. Si noti che PyQt5 (ma non PyQt4) può infatti essere installato con pip, quindi ciò rende le cose molto più convenienti.

Passaggi per Python 3 con PyQt5:

  1. cdin una directory a tua scelta, che avrà ~/Desktop/templo scopo di scrivere questa risposta, git cloneil repository GitHub / client FAForever e git checkoutil 474-feature-py3ramo:

    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. Crea e attiva un virtualenv per Python 3 (il valore predefinito è Python 3.5 per Ubuntu 17.04) e forza l'upgrade pipsolo per assicurarti che sia aggiornato:

    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. Utilizzare pipper installare PyQt5e da requirements.txt:

    pip install PyQt5
    pip install -r requirements.txt
    
  4. Scarica il faf-uidbinario in faf-client/libe rendilo eseguibile:

    wget https://github.com/FAForever/uid/releases/download/v4.0.4/faf-uid -O lib/faf-uid
    chmod +x lib/faf-uid
    
  5. Esegui pythonsu src/__main__.py:

    python src/__main__.py
    

Python 2 con PyQt4 e PySide (sperimentale)

Potrei aver capito come importare il QtWebKitmodulo, ma non ho installato il gioco FAF, quindi non posso verificare completamente che funzioni e quindi questa risposta è in fase di elaborazione.

In breve, aptinstallavo python-qt4, che non ha il QtWebKitmodulo. Ho creato e attivato un virtualenv senza usare l' --system-site-packagesopzione e usato pipper l'installazione PySide, che ha il QtWebKitmodulo. Ho quindi collegato i file e le librerie di sistema appropriate per PyQt4 in virtualenv. Quindi ho apportato un paio di modifiche faf-client/srcper importare il QtWebKitmodulo da PySide. Questa soluzione è ispirata da /programming//a/28850104/486919 , /programming//a/36887302/486919 e /programming//a/37616466/486919 .

passi:

  1. Installa python-qt4:

    sudo apt update
    sudo apt install python-qt4
    
  2. cdin una directory a tua scelta, che avrà ~/Desktop/templo scopo di scrivere questa risposta, la git clonemia versione del repository e git checkoutil patchramo:

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

    Questo patchramo ha diversi commit aggiuntivi rispetto al developramo predefinito : 1) elimina le specifiche di versione per cx_Freeze, il che mi dava problemi di installazione se utilizzavo la 4.3.4versione precedentemente specificata, e 2) importa QtWebKitda PySideinvece di PyQt4.

  3. Crea e attiva un virtualenv per Python 2 e forza l'upgrade pipsolo per assicurarti che sia aggiornato:

    virtualenv venv
    source venv/bin/activate
    pip install -U --force-reinstall pip
    
  4. Utilizzare pipper installare PySidee da requirements.txt:

    pip install PySide
    pip install -r requirements.txt
    
  5. Scarica il faf-uidbinario in faf-client/libe rendilo eseguibile:

    wget https://github.com/FAForever/uid/releases/download/v4.0.4/faf-uid -O lib/faf-uid
    chmod +x lib/faf-uid
    
  6. cdalla site-packagesdirectory all'interno di virtualenv e creare collegamenti simbolici appropriati:

    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 .
    

    Nota .alla fine di ogni collegamento simbolico.

  7. cdtorna a faf-cliented eseguire pythonon src/__main__.py:

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

prima di tutto grazie! e mi dispiace di aver perso la coda. Sono stato ricoverato in ospedale. Sono bloccato a: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 Mio male. Devi prima cdentrare nella faf-clientdirectory, poi fallo git checkout patch.
edwinksl,

@edwinskl yup !! e esegui il backup del cd una volta fatto
Tatsu,

@edwinskl subito dopo pip install -r faf-client/requirements.txt aver aggiunto wget https://github.com/FAForever/uid/releases/download/v4.0.4/faf-uid -O ./faf-client/lib/faf-uid e chmod +x ./faf-client/lib/faf-uidpoi fatto cd ./faf-client && ../venv/bin/python src/__main__.py come da post originale del forum tutorial ho costruito il mio script con: forums.faforever.com/… FAF esegue bbut ancora con un registro degli errori.
Tatsu,

@tatsu Sentiti libero di suggerire modifiche! Dopo tutto hai installato il gioco mentre io non ...
edwinksl,

1

Verifica la ~/.bashrcsostituzione della versione di Python

Il pacchetto che si desidera compilare richiede Python versione 2.7.x. Confermalo con questi comandi:

$ 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']
>>> 

Questo era il problema in queste domande e risposte .

Non sei solo con la linux error PyQt4 import QtWebKitricerca di Google:

Sfortunatamente ci sono molti più risultati di Google, ma credo che siano i più pertinenti da leggere se la prima raccomandazione non viene visualizzata.


grazie ma non sono sicuro se sono io che non capisco o cosa, ma sto usando virtualenv che (credo) mi sta aiutando a non installare python2 localmente. dato che non avrei dovuto preoccuparmi di python3 che si intrometteva in nulla. correggimi se ho perso del tutto il segno qui
tatsu,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.