Python 3 com PyQt5 (funciona comprovadamente)

Python 3 com PyQt5 (funciona comprovadamente)

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

(devido às visualizações que esta postagem recebe e ao 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 de localização do método antigo para executar o 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)

trabalhando FAF

Como: compilareste aplicativo python(FAF) da fonte:

instalado e funcionando graças ao guia "Python 3 with PyQt5" de @edwinksl. marcou-o como solução. bom trabalho!

Atualização (31/01/2018)

Desculpe, demorei tanto para atualizar este post. obteve 7.000 visualizações! realmente merece informações atualizadas.

Desde que perguntei muita coisa aconteceu. FAF agora tem mais ou menos suporte a 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. Mais informações podem ser encontradas em:http://forums.faforever.com/viewtopic.php?f=2&t=4507

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

por um tempo eu consegui fazer o faf rodar com python nativo, sem necessidade de virtualenv, mas a mudança de dependências e composição do pacote do QT, bem como o uso do FAF deles, quebrou isso de novo ... temporariamente, espero!

tenha certeza de que estou executando pessoalmente e estou aqui para oferecer consolo (tente pular as etapas 6 e 7 primeiro, pois 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 qualquer versão mais recente emhttps://github.com/FAForever/client/releases/)
  3. extrair (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/: vai para o diretório de trabalho
  5. sed -i 1,1d requirements.txt: remove cxFreeze dos requisitos (não é obrigatório e interromperá 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 ele seja executado por faf.
  9. touch res/RELEASE-VERSION && echo "0.16.1" >> res/RELEASE-VERSION: cumpre o requisito final do faf: um arquivo de versão de lançamento.

agora ele deve rodar, mas vamos fazer um runner:

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, execute o FAF.

Saúde!

Responder1

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

Python 3 com PyQt5 (funciona comprovadamente)

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

Etapas para Python 3 com PyQt5:

  1. cdem um diretório de sua escolha, que será ~/Desktop/temppara o propósito de escrever esta resposta, git cloneo repositório GitHub FAForever/client e git checkouto 474-feature-py3branch:

    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 a atualização pipapenas 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 pippara instalar PyQt5e de requirements.txt:

    pip install PyQt5
    pip install -r requirements.txt
    
  4. Baixe o 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. Continue :pythonsrc/__main__.py

    python src/__main__.py
    

Python 2 com PyQt4 e PySide (experimental)

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

Resumindo, eu costumava aptinstalar o python-qt4, o que faznãotem o QtWebKitmódulo. Criei e ativei um virtualenv sem usar a --system-site-packagesopção e usei pippara instalar PySideo , que possui o QtWebKitmódulo. Em seguida, vinculei as bibliotecas e arquivos do sistema apropriados para PyQt4 no virtualenv. Em seguida, fiz algumas alterações para faf-client/srcimportar o QtWebKitmódulo do PySide. Esta solução é inspirada emhttps://stackoverflow.com/a/28850104/486919,https://stackoverflow.com/a/36887302/486919ehttps://stackoverflow.com/a/37616466/486919.

Passos:

  1. Instalar python-qt4:

    sudo apt update
    sudo apt install python-qt4
    
  2. cdem um diretório de sua preferência, que servirá ~/Desktop/temppara o propósito de escrever esta resposta, git cloneminha versão do repositório e git checkoutdo patchbranch:

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

    Este patchbranch tem vários commits adicionais em comparação com o developbranch padrão: 1) ele elimina a especificação de versão para cx_Freeze, o que estava me causando problemas de instalação se eu usasse a 4.3.4versão especificada anteriormente, e 2) ele importa QtWebKitde PySideem vez de PyQt4.

  3. Crie e ative um virtualenv para Python 2 e force a atualização pipapenas para ter certeza de que está 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. Baixe o 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 crie os 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. cdvoltar faf-cliente pythoncontinuar src/__main__.py:

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

Responder2

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

O pacote que você deseja compilar requer o Python versão 2.7.x. Confirme isso 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 nestePerguntas e respostas.

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

Infelizmente, existem muitos mais resultados no Google, mas acredito que estes sejam os mais pertinentes para você lersea primeira recomendação não dá certo.

informação relacionada