рідний FAF на ubuntu (QtWebKit в ubuntu 17.04 і новіші)


11

Я намагаюся запускати FAF (уроджене) спільно з FA (через вино)

(зважаючи на перегляди цієї публікації та наскільки оновлено методи, я вирішив оновити це питання, щоб відповісти, а також попросити. Перевірте історію редагування цієї публікації для того, щоб знайти старий метод для запуску програми клієнт python та старі путівники)


Бета-стан Java-клієнт:

введіть тут опис зображення

використовувати цей скрипт: (оновлено 12.12.2019)

https://github.com/tatsujb/installFAFscript

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


Клієнт Python: (ЗАРАЗ)

працюючий FAF

Як: компілювати цю програму python (FAF) з джерела:

працює і працює завдяки посібнику @edwinksl "Python 3 з PyQt5". позначив його як рішення. хороша робота!

Оновлення (31.01.2018)

Вибачте, що я так довго зайняв оновлення цієї публікації. набрано 7000 переглядів! він дійсно заслуговує на актуальну інформацію.

З тих пір, як я запитав, багато чого сталося. Тепер FAF має більш-менш підтримку Linux. у них навіть є вікі для його встановлення (і за дистрибутив!):

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

це не гарантовано відповідає вашим потребам. Більше можна знайти, скориставшись: http://forums.faforever.com/viewtopic.php?f=2&t=4507

зараз вікі - це не все, що актуально.

на деякий час я міг би отримати faf для запуску з рідним python, не потрібні virtualenv, але QT не змінював залежності та склад пакету, а також використання FAF їх знову зламало ... тимчасово сподіваюся!

Будьте впевнені, що у мене це працює особисто, і я тут, щоб запропонувати розраду (спробуйте пропустити кроки 6 та 7 спочатку вони можуть бути непотрібними):

  1. Встановіть деякі передумови: 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(або будь-який випуск найновіший за посиланням https://github.com/FAForever/client/releases/ )
  3. витяг (для цього прикладу я добуду додому) ( 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/ : переміщення в робочий dirrectory
  5. sed -i 1,1d requirements.txt : видаляє cxFreeze з вимог (це не потрібно, і це знищить компіляцію)
  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: завантажує двійковий sudo chmod +x /usr/bin/faf-uidкод для входу та: дозволяє виконувати його faf.
  9. touch res/RELEASE-VERSION && echo "0.16.1" >> res/RELEASE-VERSION : виконує остаточну вимогу faf: файл версії випуску.

тепер він повинен бігати, але для біса цього давайте зробимо бігун:

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

потім ./FAF.shзапустити FAF.

Ура!


Дивіться wiki.qt.io/Building_Qt_5_from_Git . Якщо у вас все-таки виникають проблеми, зверніться безпосередньо до сервісів qtwebkit.
Пантера

t@tsu:~$ sudo apt-get build-dep qt5-default Reading package lists... Done E: You must put some 'source' URIs in your sources.list
тацу

Тож поставте джерело урі
Пантера

2
@tatsu Я думаю, що мені вдалося змусити QtWebKit працювати, але у мене немає гри FAF, тому я не можу повністю перевірити це. Дозвольте мені спробувати налаштувати балачку, щоб ми могли обговорити.
edwinksl

2
@tatsu Тим часом я написав відповідь. Спробуйте спробувати, чи допоможе це.
edwinksl

Відповіді:


4

Примітка: кроки для Python 3 з PyQt5, як відомо, працюють, тоді як кроки для Python 2 з PyQt4 та PySide досі експериментальні.

Python 3 з PyQt5 (доведено, що працює)

Схоже, 474-feature-py3гілка сховища FAForever / клієнт GitHub використовує Python 3 з PyQt5, який містить QtWebKit. Тому використання цієї гілки є найпростішим рішенням. Зауважте, що PyQt5 (але не PyQt4) насправді може бути встановлений за допомогою pip, так що робить речі більш зручними.

Крок для Python 3 з PyQt5:

  1. cdв директорію за вашим вибором, який буде ~/Desktop/tempз метою написання цієї відповіді, git cloneв FAForever / клієнт GitHub сховища і git checkoutв 474-feature-py3галузі:

    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. Створіть та активізуйте virtualenv для Python 3 (за замовчуванням - Python 3.5 для Ubuntu 17.04) та прискоріть оновлення pipлише для того, щоб переконатися, що він актуальний:

    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. Використовувати pipдля встановлення PyQt5та з requirements.txt:

    pip install PyQt5
    pip install -r requirements.txt
    
  4. Завантажте faf-uidдвійковий файл faf-client/libі зробіть його виконуваним:

    wget https://github.com/FAForever/uid/releases/download/v4.0.4/faf-uid -O lib/faf-uid
    chmod +x lib/faf-uid
    
  5. Запуск pythonна src/__main__.py:

    python src/__main__.py
    

Python 2 з PyQt4 та PySide (експериментальний)

Схоже, я, можливо, зрозумів, як імпортувати QtWebKitмодуль, але у мене не встановлена ​​гра FAF, тому я не можу повністю переконатися, що це працює, і тому ця відповідь триває.

Коротше кажучи, я aptвстановлював python-qt4, що не має QtWebKitмодуля. Я створив і активував virtualenv, не скориставшись --system-site-packagesопцією, і застосував pipдля встановлення PySide, який має QtWebKitмодуль. Потім я символізував відповідні системні бібліотеки та файли для PyQt4 у virtualenv. Потім я зробив кілька змін, faf-client/srcщоб імпортувати QtWebKitмодуль з PySide. Це рішення натхнене /programming//a/28850104/486919 , /programming//a/36887302/486919 та /programming//a/37616466/486919 .

Кроки:

  1. Встановити python-qt4:

    sudo apt update
    sudo apt install python-qt4
    
  2. cdв директорію за вашим вибором, який буде ~/Desktop/tempз метою написання цієї відповіді, git cloneмій варіант сховища і git checkoutв patchгалузі:

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

    Ця patchгілка має кілька додаткових фіксацій по порівнянні з за замовчуванням developгілки: 1) він позбавляється від специфікації версії для cx_Freeze, який дає мені проблеми з установкою , якщо я використовував 4.3.4версію раніше зазначену, і 2) він імпортує QtWebKitз PySideзамість PyQt4.

  3. Створіть та активізуйте virtualenv для Python 2 та прискоріть оновлення pipлише для того, щоб переконатися, що він актуальний:

    virtualenv venv
    source venv/bin/activate
    pip install -U --force-reinstall pip
    
  4. Використовувати pipдля встановлення PySideта з requirements.txt:

    pip install PySide
    pip install -r requirements.txt
    
  5. Завантажте faf-uidдвійковий файл faf-client/libі зробіть його виконуваним:

    wget https://github.com/FAForever/uid/releases/download/v4.0.4/faf-uid -O lib/faf-uid
    chmod +x lib/faf-uid
    
  6. cdдо site-packagesкаталогу всередині virtualenv і зробити відповідні символьні посилання:

    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 .
    

    Зверніть увагу .на кінець кожного символьного посилання.

  7. cdназад faf-clientі запустити pythonна src/__main__.py:

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

спочатку дякую! і шкода, що я пропустив чергу. Мене госпіталізували. Я застряг у: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 Моє погано. Спочатку потрібно cdувійти до faf-clientкаталогу, а потім зробити git checkout patch.
edwinksl

@edwinskl yup !! і cd створити резервну копію, як тільки це буде зроблено!
тацу

@edwinskl одразу після того, як pip install -r faf-client/requirements.txt я додав, wget https://github.com/FAForever/uid/releases/download/v4.0.4/faf-uid -O ./faf-client/lib/faf-uid а chmod +x ./faf-client/lib/faf-uidпотім зробив cd ./faf-client && ../venv/bin/python src/__main__.py відповідно до оригінальної публікації форуму підручника, я створив свій сценарій за допомогою: forums.faforever.com/… FAF запускається, але все ж із журналом помилок.
тацу

@tatsu Не соромтеся пропонувати зміни! Зрештою у вас встановлена ​​гра, поки я не ...
edwinksl

1

Перевірте, чи не буде ~/.bashrcзамінено версію Python

Пакет, який ви хочете скласти, вимагає версії Python 2.7.x. Підтвердіть це за допомогою цих команд:

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

У цьому і була проблема в цьому питанні .

Ви не самотні з linux error PyQt4 import QtWebKitпошуком Google:

На жаль, є набагато більше результатів Google, але, на мою думку, вони є найбільш доречними для ознайомлення, якщо перша рекомендація не зникає.


дякую, але я не впевнений, чи це я не розумію чи що, але я використовую virtualenv, який (я вважаю) допомагає мені не потрібно встановлювати python2 локально. враховуючи, що я не повинен турбуватися про python3 втручатися ні в що. виправте мене, якщо я повністю пропустив позначку тут
тацу
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.