FAF nativo no Ubuntu (QtWebKit no Ubuntu 17.04+)

12

Estou tentando executar o FAF (nativamente) em conjunto com o FA (por meio do vinho)

(devido aos pontos de vista que este post recebe e quanto os métodos foram atualizados, decidi atualizar esta questão para que ela responda, bem como perguntar. Verifique o histórico de revisão deste post para encontrar o método antigo para executar o cliente python e os guias antigos)

Cliente Java de estado beta:

useestescript:(atualizadoem3/12/2019)

link

link

Cliente Python: (AGORA OBSOLETO)

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

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

Atualização (31/1/2018)

Desculpe por ter demorado para atualizar este post. obteve 7000 visualizações! realmente merece informações atualizadas.

Desde que pedi muito aconteceu. O FAF agora tem mais ou menos suporte ao Linux. eles até têm um wiki para instalá-lo (e por distro!):

link

não é garantido que ele atenda às suas necessidades, mas pode ser encontrado mais em: link

agora o wiki não está tão atualizado.

por algum tempo eu consegui executar o faf para executar com python nativo, nenhum virtualenv necessário, mas o QT está alterando as dependências e a composição do pacote, bem como O uso de FAF deles quebrou isso de novo ... temporariamente, espero!

tenha certeza de que o tenho executado pessoalmente e estou aqui para oferecer consolo (tente pular as etapas 6 e 7 primeiro, elas 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 o lançamento mais recente no link )
  3. extract (para este exemplo, vou extrair 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/ : mova para o diretório de trabalho
  5. sed -i 1,1d requirements.txt : remove o cxFreeze dos requisitos (não é necessário e irá matar 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 : faz o download do login binário e: sudo chmod +x /usr/bin/faf-uid permite que ele seja executado por faf.
  9. touch res/RELEASE-VERSION && echo "0.16.1" >> res/RELEASE-VERSION : preenche o requisito final do faf: um arquivo de versão de lançamento.

agora ele deve rodar, mas para isso 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

, em seguida, ./FAF.sh para executar o FAF.

Felicidades!

    
por tatsu 08.06.2017 / 22:22

2 respostas

4

Nota: os passos para Python 3 com PyQt5 provaram funcionar enquanto os passos para Python 2 com PyQt4 e PySide ainda são experimentais.

Python 3 com PyQt5 (comprovado para funcionar)

Parece que a ramificação 474-feature-py3 do repositório GitHub do FAForever / client usa o Python 3 com PyQt5, que contém o QtWebKit. Portanto, usar esse ramo é a solução mais simples. Note que o PyQt5 (mas não o PyQt4) pode ser instalado com pip , então isso torna as coisas muito mais convenientes.

Etapas para o Python 3 com PyQt5:

  1. cd em um diretório de sua escolha, que será ~/Desktop/temp para o propósito de escrever esta resposta, git clone do repositório GitHub do FAForever / client e git checkout the 474-feature-py3 branch:

    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 o Python 3 (o padrão é o Python 3.5 para o Ubuntu 17.04) e force-upgrade pip apenas para ter certeza de que está 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 pip para instalar PyQt5 e requirements.txt :

    pip install PyQt5
    pip install -r requirements.txt
    
  4. Transfira o binário faf-uid para faf-client/lib e 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 python em src/__main__.py :

    python src/__main__.py
    

Python 2 com PyQt4 e PySide (experimental)

Parece que eu posso ter descoberto como importar o módulo QtWebKit , mas não tenho o jogo FAF instalado, por isso não posso verificar totalmente se isso funciona e, portanto, essa resposta é um trabalho em andamento.

Em poucas palavras, usei apt para instalar python-qt4 , o que não tem o módulo QtWebKit . Eu criei e ativei um virtualenv sem usar a opção --system-site-packages e usei pip para instalar o PySide , que possui o módulo QtWebKit . Eu então criei um link simbólico para bibliotecas virtuais e arquivos apropriados para o PyQt4 no virtualenv. Em seguida, fiz algumas alterações em faf-client/src para importar o módulo QtWebKit de PySide . Essa solução é inspirada no link , link e link .

Etapas:

  1. Instale python-qt4 :

    sudo apt update
    sudo apt install python-qt4
    
  2. cd em um diretório de sua escolha, que será ~/Desktop/temp para o propósito de escrever esta resposta, git clone minha versão do repositório e git checkout o patch branch:

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

    Esta ramificação patch tem várias confirmações adicionais comparadas à ramificação develop padrão: 1) ela se livra da especificação de versão para cx_Freeze , o que me causava problemas de instalação se eu usasse a versão 4.3.4 anteriormente especificado, e 2) importa QtWebKit de PySide em vez de PyQt4 .

  3. Crie e ative um virtualenv para o Python 2 e force-upgrade pip apenas para ter certeza de que está atualizado:

    virtualenv venv
    source venv/bin/activate
    pip install -U --force-reinstall pip
    
  4. Use pip para instalar PySide e requirements.txt :

    pip install PySide
    pip install -r requirements.txt
    
  5. Transfira o binário faf-uid para faf-client/lib e 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. cd para o diretório site-packages 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. cd volta para faf-client e executa python em src/__main__.py :

    cd -  # this goes back to previous directory, which should be ~/Desktop/temp/faf-client
    python src/__main__.py
    
por edwinksl 16.06.2017 / 07:50
1

Verifique ~/.bashrc para substituir a versão do Python

O pacote que você está querendo 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 neste Perguntas e respostas .

Você não está sozinho com linux error PyQt4 import QtWebKit pesquisa do Google:

Infelizmente, há muito mais resultados no google, mas estes são os mais pertinentes para você ler se a primeira recomendação não der certo.

    
por WinEunuuchs2Unix 16.06.2017 / 03:26