Python 3 con PyQt5 (se ha demostrado que funciona)

Python 3 con PyQt5 (se ha demostrado que funciona)

Estoy intentando ejecutar FAF (de forma nativa) junto con FA (a través de Wine)

(debido a las vistas que recibe esta publicación y a cuánto se han actualizado los métodos, he decidido actualizar esta pregunta para que responda y pregunte. Consulte el historial de revisión de esta publicación para conocer el proceso para encontrar el método anterior para ejecutar el cliente Python y las guías antiguas)


Cliente Java en estado Beta:

ingrese la descripción de la imagen aquí

usa este script:(actualizado el 12/03/2019)

https://github.com/tatsujb/installFAFscript

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


Cliente Python: (AHORA OBSOLETO)

FAF trabajando

Cómo: compilaresta aplicación de Python(FAF) de la fuente:

en funcionamiento gracias a la guía "Python 3 con PyQt5" de @edwinksl. Lo marcó como solución. ¡buen trabajo!

Actualización (31/1/2018)

Perdón por haber tardado tanto en actualizar esta publicación. ¡Ha obtenido 7000 visitas! realmente merece información actualizada.

Desde que pregunté han pasado muchas cosas. FAF ahora tiene más o menos soporte para Linux. incluso tienen una wiki para instalarlo (¡y por distribución!):

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

No se garantiza que se ajuste a sus necesidades; puede encontrar más información investigando:http://forums.faforever.com/viewtopic.php?f=2&t=4507

En este momento, la wiki no está tan actualizada.

por un tiempo pude hacer que faf se ejecutara con Python nativo, no se necesita virtualenv, pero las dependencias y la composición de paquetes cambiantes de QT, así como el uso de FAF de ellos, lo han roto nuevamente... ¡temporalmente, espero!

Tenga la seguridad de que lo tengo funcionando personalmente y estoy aquí para ofrecerle consuelo (intente omitir los pasos 6 y 7 primero, pueden ser innecesarios):

  1. Instale algunos requisitos previos: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 la versión más reciente enhttps://github.com/FAForever/client/releases/)
  3. extraer (para este ejemplo extraeré a inicio) ( 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/: ir al directorio de trabajo
  5. sed -i 1,1d requirements.txt: elimina cxFreeze de los requisitos (no es necesario y finalizará la compilación)
  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: descarga el binario de inicio de sesión y : sudo chmod +x /usr/bin/faf-uidpermite que faf lo ejecute.
  9. touch res/RELEASE-VERSION && echo "0.16.1" >> res/RELEASE-VERSION: cumple con el requisito final de faf: un archivo de versión de lanzamiento.

Ahora debería ejecutarse, pero por el gusto de hacerlo, hagamos un 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

luego ./FAF.shejecutar FAF.

¡Salud!

Respuesta1

Nota: Se ha demostrado que los pasos para Python 3 con PyQt5 funcionan, mientras que los pasos para Python 2 con PyQt4 y PySide aún son experimentales.

Python 3 con PyQt5 (se ha demostrado que funciona)

Parece que la 474-feature-py3rama del repositorio FAForever/client GitHub usa Python 3 con PyQt5, que contiene QtWebKit. Por lo tanto, utilizar esta rama es la solución más sencilla. Tenga en cuenta que PyQt5 (pero no PyQt4) de hecho se puede instalar con pip, lo que hace las cosas mucho más convenientes.

Pasos para Python 3 con PyQt5:

  1. cden un directorio de su elección, que será ~/Desktop/temppara el propósito de escribir esta respuesta, git cloneel repositorio GitHub de FAForever/client y git checkoutla 474-feature-py3rama:

    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. Cree y active un virtualenv para Python 3 (el valor predeterminado es Python 3.5 para Ubuntu 17.04) y fuerce la actualización pipsolo para asegurarse de que esté actualizado:

    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. Utilice pippara instalar PyQt5y desde requirements.txt:

    pip install PyQt5
    pip install -r requirements.txt
    
  4. Descarga el faf-uidbinario faf-client/liby hazlo ejecutable:

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

    python src/__main__.py
    

Python 2 con PyQt4 y PySide (experimental)

Parece que he descubierto cómo importar el QtWebKitmódulo, pero no tengo el juego FAF instalado, por lo que no puedo verificar completamente que esto funcione y, por lo tanto, esta respuesta es un trabajo en progreso.

En pocas palabras, solía aptinstalar python-qt4, lo cual nonotiene el QtWebKitmodulo. Creé y activé un virtualenv sin usar la --system-site-packagesopción y usé pippara instalar PySide, que sí tiene el QtWebKitmódulo. Luego vinculé las bibliotecas y archivos del sistema apropiados para PyQt4 al virtualenv. Luego hice un par de cambios para faf-client/srcimportar el QtWebKitmódulo desde PySide. Esta solución está inspirada enhttps://stackoverflow.com/a/28850104/486919,https://stackoverflow.com/a/36887302/486919yhttps://stackoverflow.com/a/37616466/486919.

Pasos:

  1. Instalar python-qt4:

    sudo apt update
    sudo apt install python-qt4
    
  2. cden un directorio de su elección, que será ~/Desktop/tempcon el propósito de escribir esta respuesta, git clonemi versión del repositorio y git checkoutla patchrama:

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

    Esta patchrama tiene varias confirmaciones adicionales en comparación con la rama predeterminada develop: 1) elimina la especificación de versión de cx_Freeze, que me estaba dando problemas de instalación si usaba la 4.3.4versión especificada anteriormente, y 2) importa QtWebKitdesde PySideen lugar de PyQt4.

  3. Cree y active un virtualenv para Python 2 y fuerce la actualización pipsolo para asegurarse de que esté actualizado:

    virtualenv venv
    source venv/bin/activate
    pip install -U --force-reinstall pip
    
  4. Utilice pippara instalar PySidey desde requirements.txt:

    pip install PySide
    pip install -r requirements.txt
    
  5. Descarga el faf-uidbinario faf-client/liby hazlo ejecutable:

    wget https://github.com/FAForever/uid/releases/download/v4.0.4/faf-uid -O lib/faf-uid
    chmod +x lib/faf-uid
    
  6. cdal site-packagesdirectorio dentro de virtualenv y cree los enlaces simbólicos apropiados:

    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 .
    

    Tenga en cuenta el .al final de cada enlace simbólico.

  7. cdvolver a faf-clienty pythonejecutar src/__main__.py:

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

Respuesta2

Verifique ~/.bashrcla anulación de la versión de Python

El paquete que desea compilar requiere la versión 2.7.x de Python. Confirma eso con estos 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']
>>> 

Ese era el problema en estePreguntas y respuestas.

No estás solo con linux error PyQt4 import QtWebKitla búsqueda de Google:

Desafortunadamente, hay muchos más resultados de Google, pero creo que estos son los más pertinentes para que los leas.siLa primera recomendación no funciona.

información relacionada