FAF nativo no ubuntu (QtWebKit no ubuntu 17.04+)

11

Estou tentando executar o FAF (nativamente) em conjunto com o FA (através do vinho)

(devido às visualizações que esta postagem recebe e a quanto os métodos foram atualizados, decidi atualizar esta pergunta para que ela responda e também pergunte. verifique o histórico de revisões desta postagem para ver o processo para encontrar o método antigo para executar o método cliente python e os guias antigos)


Cliente Java de estado beta:

insira a descrição da imagem aqui

use este script: (atualizado em 12/03/2019)

https://github.com/tatsujb/installFAFscript

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


Cliente Python: (agora obsoleto)

FAF trabalhando

Como: compilar este aplicativo python (FAF) da fonte:

em funcionamento graças ao guia "Python 3 com PyQt5" de @edwinksl. marcou-o como solução. bom trabalho!

Atualização (31/1/2018)

Desculpe, demorei tanto para atualizar esta postagem. obteve 7000 visualizações! realmente merece informações atualizadas.

Desde que eu perguntei muita coisa aconteceu. O FAF agora tem mais ou menos suporte ao Linux. eles ainda têm um wiki para instalá-lo (e por distribuição!):

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

não é garantido que atenda às suas necessidades, você pode encontrar mais informações acessando: http://forums.faforever.com/viewtopic.php?f=2&t=4507

No momento, o wiki não está tão atualizado.

por algum tempo eu consegui que o faf funcionasse com python nativo, não era necessário virtualenv, mas as dependências variáveis ​​do QT e a composição dos pacotes, assim como o uso do FAF, quebraram isso novamente ... espero que temporariamente!

tenha certeza de que estou executando pessoalmente e estou aqui para oferecer consolo (tente pular as etapas 6 e 7 primeiro, pois podem ser desnecessárias):

  1. Instale alguns pré-requisitos: 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 qualquer versão mais recente em https://github.com/FAForever/client/releases/ )
  3. extrair (neste exemplo, extrairei para casa) ( 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/ : mover para o diretório de trabalho
  5. sed -i 1,1d requirements.txt : remove o cxFreeze dos requisitos (não é necessário e eliminará a compilação)
  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: baixa o binário de login e: sudo chmod +x /usr/bin/faf-uidpermite que seja executado pelo faf.
  9. touch res/RELEASE-VERSION && echo "0.16.1" >> res/RELEASE-VERSION : atende ao requisito final do faf: um arquivo de versão de lançamento.

Agora ele deve rodar, mas, para o inferno, vamos fazer um corredor:

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

depois, ./FAF.shpara executar o FAF.

Felicidades!

tatsu
fonte
Consulte wiki.qt.io/Building_Qt_5_from_Git . Se você ainda tiver um problema, entre em contato diretamente com os mantenedores do 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
Então coloque uri origem em - askubuntu.com/questions/496549/...
Panther
2
@tatsu Acho que consegui fazer o QtWebKit funcionar, mas não tenho o jogo FAF, por isso não posso verificar completamente se isso funciona. Deixe-me tentar montar uma sala de bate-papo para que possamos discutir.
edwinksl
2
Enquanto isso, escrevi uma resposta. Experimente e veja se isso ajuda.
edwinksl

Respostas:

4

Nota: as etapas para o Python 3 com PyQt5 são comprovadas para funcionar, enquanto as etapas para o Python 2 com PyQt4 e PySide ainda são experimentais.

Python 3 com PyQt5 (comprovado que funciona)

Parece que a 474-feature-py3ramificação do repositório FAForever / client GitHub usa Python 3 com PyQt5, que contém QtWebKit. Portanto, usar esse ramo é a solução mais direta. Observe que o PyQt5 (mas não o PyQt4) pode de fato ser instalado pip, o que torna as coisas mais convenientes.

Etapas para Python 3 com PyQt5:

  1. cdem um diretório de sua escolha, ~/Desktop/tempcom o objetivo de escrever esta resposta, git cloneo repositório FAForever / client GitHub e git checkouta 474-feature-py3ramificação:

    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. Crie e ative um virtualenv para Python 3 (o padrão é Python 3.5 para Ubuntu 17.04) e force-upgrade pipapenas para garantir que esteja atualizado:

    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. Use pippara instalar PyQt5e de requirements.txt:

    pip install PyQt5
    pip install -r requirements.txt
    
  4. Faça o download do faf-uidbinário faf-client/libe torne-o executável:

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

    python src/__main__.py
    

Python 2 com PyQt4 e PySide (experimental)

Parece que eu descobri como importar o QtWebKitmódulo, mas não tenho o jogo FAF instalado, então não posso verificar completamente se isso funciona e, portanto, esta resposta é um trabalho em andamento.

Em poucas palavras, eu costumava aptinstalar python-qt4, que não possui o QtWebKitmódulo. Criei e ativei um virtualenv sem usar a --system-site-packagesopção e usei pipa instalação PySide, que possui o QtWebKitmódulo. Em seguida, vinculei as bibliotecas e arquivos do sistema apropriados para o PyQt4 ao virtualenv. Depois, fiz algumas alterações faf-client/srcpara importar o QtWebKitmódulo PySide. Esta solução é inspirada em /programming//a/28850104/486919 , /programming//a/36887302/486919 e /programming//a/37616466/486919 .

Passos:

  1. Instalar python-qt4:

    sudo apt update
    sudo apt install python-qt4
    
  2. cdem um diretório de sua escolha, que terá como ~/Desktop/tempobjetivo escrever esta resposta, git cloneminha versão do repositório e git checkouto patchramo:

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

    Essa patchramificação possui várias confirmações adicionais em comparação com a developramificação padrão : 1) elimina a especificação da versão cx_Freeze, o que estava causando problemas de instalação se eu usasse a 4.3.4versão especificada anteriormente e 2) importa QtWebKitem PySidevez de PyQt4.

  3. Crie e ative um virtualenv para Python 2 e force-upgrade pipapenas para garantir que ele esteja atualizado:

    virtualenv venv
    source venv/bin/activate
    pip install -U --force-reinstall pip
    
  4. Use pippara instalar PySidee de requirements.txt:

    pip install PySide
    pip install -r requirements.txt
    
  5. Faça o download do faf-uidbinário faf-client/libe torne-o executável:

    wget https://github.com/FAForever/uid/releases/download/v4.0.4/faf-uid -O lib/faf-uid
    chmod +x lib/faf-uid
    
  6. cdpara o site-packagesdiretório dentro do virtualenv e faça links simbólicos apropriados:

    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 .
    

    Observe o .no final de cada link simbólico.

  7. cdde volta para faf-cliente executar pythonem src/__main__.py:

    cd -  # this goes back to previous directory, which should be ~/Desktop/temp/faf-client
    python src/__main__.py
    
edwinksl
fonte
primeiro obrigado! e desculpe, perdi a fila. Eu fui hospitalizado. Estou preso em: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 21/06
@tatsu Meu mal. Você precisa cdentrar no faf-clientdiretório primeiro e depois fazer git checkout patch.
edwinksl
@edwinskl yup !! e faça o backup do CD assim que estiver pronto!
precisa saber é
@edwinskl logo após pip install -r faf-client/requirements.txt adicionar wget https://github.com/FAForever/uid/releases/download/v4.0.4/faf-uid -O ./faf-client/lib/faf-uid e, em chmod +x ./faf-client/lib/faf-uidseguida, cd ./faf-client && ../venv/bin/python src/__main__.py conforme o post original do fórum do tutorial, criei meu script com: forums.faforever.com/… O FAF executa o bbut ainda com um log de erros.
tatsu 21/06
@tatsu Sinta-se livre para sugerir edições! Depois de tudo que você tem o jogo instalado, enquanto eu não ...
edwinksl
1

Verificar ~/.bashrca substituição da versão do Python

O pacote que você deseja compilar requer o Python versão 2.7.x. Confirme que com estes comandos:

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

Esse foi o problema nas perguntas e respostas .

Você não está sozinho na linux error PyQt4 import QtWebKitpesquisa do Google:

Infelizmente, existem muitos mais resultados do google, mas acredito que sejam os mais pertinentes para você ler se a primeira recomendação não der certo.

WinEunuuchs2Unix
fonte
obrigado, mas não tenho certeza se sou eu quem não está entendendo ou o quê, mas estou usando o virtualenv que (acredito) está me ajudando a não ter que instalar o python2 localmente. dado que eu não deveria ter que me preocupar com python3 se intrometendo em nada. me corrija se eu perdi completamente a marca aqui
tatsu