natywny FAF na Ubuntu (QtWebKit na Ubuntu 17.04+)

11

Próbuję uruchomić FAF (natywnie) w połączeniu z FA (przez wino)

(ze względu na opinie otrzymane w tym poście i ilość zaktualizowanych metod postanowiłem zaktualizować to pytanie, aby można było na nie odpowiedzieć, a także zapytać. sprawdź historię wersji tego postu, aby znaleźć proces starej metody uruchamiania klient python i stare przewodniki)


Klient Java w stanie beta:

wprowadź opis zdjęcia tutaj

użyj tego skryptu: (zaktualizowano 3/12/2019)

https://github.com/tatsujb/installFAFscript

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


Klient Python: (TERAZ OBSOLETE)

działający FAF

Instrukcje: kompilowanie tej aplikacji w języku Python (FAF) ze źródła:

działa dzięki przewodnikowi „Python 3 with PyQt5” @edwinksl. oznaczył go jako rozwiązanie. dobra robota!

Aktualizacja (31/1/2018)

Przepraszamy, tyle czasu zajęło mi zaktualizowanie tego postu. ma 7000 wyświetleń! naprawdę zasługuje na aktualne informacje.

Odkąd zapytałem, wiele się wydarzyło. FAF ma teraz mniej więcej obsługę Linuksa. mają nawet wiki do instalacji (i na dystrybucję!):

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

nie ma gwarancji, że będzie pasować do twoich potrzeb, więcej można znaleźć, kopiąc: http://forums.faforever.com/viewtopic.php?f=2&t=4507

w tej chwili wiki nie jest już tak aktualna.

przez jakiś czas mogłem uruchomić fafa z natywnym pytonem, nie potrzebowałem virtualenv, ale QT ciągle zmienia zależności i skład pakietu, a także użycie przez nich FAF znów to zepsuło ... chwilowo mam nadzieję!

zapewniam, że działam osobiście i jestem tutaj, aby zaoferować pocieszenie (spróbuj pominąć kroki 6 i 7, ponieważ mogą być niepotrzebne):

  1. Zainstaluj kilka wymagań wstępnych: 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(lub którakolwiek wersja jest najnowsza na https://github.com/FAForever/client/releases/ )
  3. wypakuj (w tym przykładzie wypakuję do domu) ( 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/ : przejdź do działającego katalogu
  5. sed -i 1,1d requirements.txt : usuwa cxFreeze z wymagań (nie jest to wymagane i zabije kompilację)
  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: pobiera login binarny i: sudo chmod +x /usr/bin/faf-uidpozwala na wykonanie przez faf.
  9. touch res/RELEASE-VERSION && echo "0.16.1" >> res/RELEASE-VERSION : spełnia ostatnie wymaganie faf: plik wersji.

teraz powinien biec, ale do diabła zróbmy biegacza:

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

następnie ./FAF.shuruchomić FAF.

Twoje zdrowie!

tatsu
źródło
Zobacz wiki.qt.io/Building_Qt_5_from_Git . Jeśli nadal masz problem, skontaktuj się bezpośrednio z opiekunami qtwebkit.
Panther
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
Więc umieść źródło uri w - askubuntu.com/questions/496549/…
Panther
2
@tatsu Myślę, że udało mi się uruchomić QtWebKit, ale nie mam gry FAF, więc nie mogę w pełni zweryfikować, czy to działa. Pozwól mi spróbować skonfigurować pokój rozmów, abyśmy mogli dyskutować.
edwinksl
2
@tatsu W międzyczasie napisałem odpowiedź. Spróbuj i sprawdź, czy to pomoże.
edwinksl

Odpowiedzi:

4

Uwaga: kroki dla Python 3 z PyQt5 są sprawdzone, podczas gdy kroki dla Python 2 z PyQt4 i PySide są nadal eksperymentalne.

Python 3 z PyQt5 (sprawdzony)

Wygląda na to, że 474-feature-py3gałąź repozytorium GitHub FAForever / klienta używa Python 3 z PyQt5, który zawiera QtWebKit. Dlatego użycie tej gałęzi jest najprostszym rozwiązaniem. Zauważ, że PyQt5 (ale nie PyQt4) może być w rzeczywistości instalowany z pip, dzięki czemu jest znacznie wygodniej.

Kroki dla Pythona 3 z PyQt5:

  1. cddo wybranego katalogu, który będzie ~/Desktop/tempw celu pisania tego odpowiedź, git clonena FAForever / client repozytorium GitHub i git checkoutna 474-feature-py3oddział:

    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. Utwórz i aktywuj virtualenv dla Python 3 (domyślnie jest to Python 3.5 dla Ubuntu 17.04) i wymuś aktualizację, pipaby upewnić się, że jest aktualna:

    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. Użyj, pipaby zainstalować PyQt5i z requirements.txt:

    pip install PyQt5
    pip install -r requirements.txt
    
  4. Pobierz plik faf-uidbinarny na faf-client/libi wykonaj go:

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

    python src/__main__.py
    

Python 2 z PyQt4 i PySide (eksperymentalny)

Wygląda na to, że mogłem dowiedzieć się, jak zaimportować QtWebKitmoduł, ale nie mam zainstalowanej gry FAF, więc nie mogę w pełni zweryfikować, czy to działa i dlatego ta odpowiedź jest w toku.

W skrócie, zwykłem aptinstalować python-qt4, który nie ma QtWebKitmodułu. Utworzyłem i aktywowałem virtualenv bez użycia --system-site-packagesopcji i użyłem pipdo instalacji PySide, która ma QtWebKitmoduł. Następnie dowiązałem odpowiednie biblioteki systemowe i pliki dla PyQt4 do virtualenv. Następnie dokonałem kilku zmian, faf-client/srcaby zaimportować QtWebKitmoduł PySide. To rozwiązanie jest inspirowane /programming//a/28850104/486919 , /programming//a/36887302/486919 i /programming//a/37616466/486919 .

Kroki:

  1. Zainstaluj python-qt4:

    sudo apt update
    sudo apt install python-qt4
    
  2. cddo wybranego katalogu, który będzie ~/Desktop/tempw celu pisania tego odpowiedź, git clonemoja wersja repozytorium i git checkoutna patchoddziale:

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

    Ta patchgałąź ma kilka dodatkowych zobowiązuje porównaniu do standardowego developoddziału: 1) pozbywa specyfikacji dla wersji cx_Freeze, która daje mi problemów związanych z instalacją, jeśli użyłem 4.3.4wersji uprzednio określonego, 2) importuje QtWebKitz PySidezamiast PyQt4.

  3. Utwórz i aktywuj virtualenv dla Python 2 i wymuś aktualizację, pipaby upewnić się, że jest aktualna:

    virtualenv venv
    source venv/bin/activate
    pip install -U --force-reinstall pip
    
  4. Użyj, pipaby zainstalować PySidei z requirements.txt:

    pip install PySide
    pip install -r requirements.txt
    
  5. Pobierz plik faf-uidbinarny na faf-client/libi wykonaj go:

    wget https://github.com/FAForever/uid/releases/download/v4.0.4/faf-uid -O lib/faf-uid
    chmod +x lib/faf-uid
    
  6. cddo site-packageskatalogu wewnątrz virtualenv i wykonaj odpowiednie dowiązania symboliczne:

    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 .
    

    Zwróć uwagę .na koniec każdego dowiązania symbolicznego.

  7. cdz powrotem faf-clienti uruchomić pythonna src/__main__.py:

    cd -  # this goes back to previous directory, which should be ~/Desktop/temp/faf-client
    python src/__main__.py
    
edwinksl
źródło
po pierwsze dziękuję! i przepraszam, że przegapiłem kolejkę. Byłem w szpitalu. 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.
Utknąłem
@tatsu My bad. Najpierw musisz przejść cddo faf-clientkatalogu, a następnie zrobić git checkout patch.
edwinksl
@edwinskl yup !! i wykonaj kopię zapasową płyty CD, gdy to zrobisz!
tatsu
@edwinskl zaraz po tym, pip install -r faf-client/requirements.txt jak dodałem, wget https://github.com/FAForever/uid/releases/download/v4.0.4/faf-uid -O ./faf-client/lib/faf-uid a chmod +x ./faf-client/lib/faf-uidpotem zrobiłem cd ./faf-client && ../venv/bin/python src/__main__.py zgodnie z oryginalnym postem na samouczku na forum, który zbudowałem ze skryptu: forums.faforever.com/... FAF nadal uruchamia bbut z dziennikiem błędów.
tatsu
@tatsu Zapraszam do sugerowania zmian! W końcu masz zainstalowaną grę, a ja nie ...
edwinksl
1

Sprawdź ~/.bashrczastąpienie wersji Python

Pakiet, który chcesz skompilować, wymaga wersji Python w wersji 2.7.x. Potwierdź to za pomocą tych poleceń:

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

To był problem w tym pytaniu .

Nie jesteś sam z linux error PyQt4 import QtWebKitwyszukiwarką Google:

Niestety jest dużo więcej wyników Google, ale uważam, że są one najbardziej odpowiednie do przeczytania, jeśli pierwsza rekomendacja się nie powiedzie.

WinEunuuchs2Unix
źródło
dziękuję, ale nie jestem pewien, czy to ja nie rozumiem lub co, ale używam virtualenv, co (jak sądzę) pomaga mi nie instalować Pythona lokalnie. biorąc pod uwagę, że nie powinienem się martwić o wtrącanie się Pythona w cokolwiek. popraw mnie, jeśli całkowicie przegapiłem znak tutaj
tatsu