FAF asli di ubuntu (QtWebKit di ubuntu 17.04+)

11

Saya mencoba menjalankan FAF (asli) bersamaan dengan FA (melalui anggur)

(karena pandangan yang diterima pos ini dan seberapa banyak metode telah diperbarui, saya telah memutuskan untuk memperbarui pertanyaan ini untuk dijawab serta ditanyakan. periksa riwayat revisi pos ini untuk proses menemukan metode lama untuk menjalankan metode klien python dan panduan lama)


Klien Java Beta-state:

masukkan deskripsi gambar di sini

gunakan skrip ini: (diperbarui 3/12/2019)

https://github.com/tatsujb/installFAFscript

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


Klien Python: (SEKARANG OBSOLETE)

FAF bekerja

Cara: kompilasi aplikasi python ini (FAF) dari sumber:

dan berjalan berkat panduan @edwinksl "Python 3 with PyQt5". menandainya sebagai solusi. kerja bagus!

Pembaruan (31/1/2018)

Maaf saya butuh waktu lama untuk memperbarui posting ini. itu mendapat 7000 tampilan! itu benar-benar layak info terbaru.

Karena saya bertanya banyak yang telah terjadi. FAF sekarang memiliki lebih atau kurang dukungan linux. mereka bahkan memiliki wiki untuk menginstalnya (dan per distro!):

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

itu tidak dijamin sesuai dengan kebutuhan Anda, lebih banyak dapat ditemukan dengan menggali: http://forums.faforever.com/viewtopic.php?f=2&t=4507

saat ini wiki tidak terlalu mutakhir.

untuk sementara saya bisa menjalankannya dengan python asli, tidak perlu virtualenv tapi QT mengubah dependensi dan komposisi paket serta penggunaan FAF dari mereka telah merusaknya lagi ... untuk sementara saya harap!

yakinlah saya sudah menjalankannya secara pribadi dan saya di sini untuk menawarkan pelipur lara (coba lewati langkah 6 & 7 pertama kali mungkin tidak dibutuhkan):

  1. Instal beberapa prasyarat: 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(atau rilis mana pun yang terbaru di https://github.com/FAForever/client/releases/ )
  3. ekstrak (untuk contoh ini saya akan mengekstrak ke rumah) ( 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/ : pindah ke direktori kerja
  5. sed -i 1,1d requirements.txt : menghapus cxFreeze dari persyaratan (tidak diperlukan dan itu akan mematikan kompilasi)
  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: unduh login binary dan: sudo chmod +x /usr/bin/faf-uidmemungkinkannya dieksekusi oleh faf.
  9. touch res/RELEASE-VERSION && echo "0.16.1" >> res/RELEASE-VERSION : memenuhi persyaratan final faf: file versi rilis.

sekarang harus berjalan tetapi untuk itu mari kita buat pelari:

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

kemudian ./FAF.shjalankan FAF.

Bersulang!

tatsu
sumber
Lihat wiki.qt.io/Building_Qt_5_from_Git . Jika Anda masih memiliki masalah, hubungi pengelola qtwebkit secara langsung.
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
Jadi masukkan sumber uri di - askubuntu.com/questions/496549/…
Panther
2
@tatsu Saya pikir saya berhasil membuat QtWebKit berfungsi tetapi saya tidak memiliki permainan FAF, jadi saya tidak dapat sepenuhnya memverifikasi ini berfungsi. Izinkan saya mencoba mengatur ruang obrolan agar kita dapat berdiskusi.
edwinksl
2
@tatsu Sementara itu saya menulis jawaban. Cobalah dan lihat apakah itu membantu.
edwinksl

Jawaban:

4

Catatan: langkah-langkah untuk Python 3 dengan PyQt5 terbukti berfungsi sementara langkah-langkah untuk Python 2 dengan PyQt4 dan PySide masih bersifat percobaan.

Python 3 dengan PyQt5 (terbukti berfungsi)

Tampaknya 474-feature-py3cabang repositori FAForever / client menggunakan Python 3 dengan PyQt5, yang berisi QtWebKit. Oleh karena itu, menggunakan cabang ini adalah solusi yang paling mudah. Perhatikan bahwa PyQt5 (tetapi bukan PyQt4) sebenarnya dapat diinstal pip, sehingga membuat segalanya menjadi lebih nyaman.

Langkah-langkah untuk Python 3 dengan PyQt5:

  1. cdke direktori pilihan Anda, yang akan ~/Desktop/tempdimaksudkan untuk menulis jawaban ini, git clonepara FAForever / klien GitHub repositori dan git checkoutyang 474-feature-py3cabang:

    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. Buat dan aktifkan virtualenv untuk Python 3 (defaultnya adalah Python 3.5 untuk Ubuntu 17.04) dan perbarui secara paksa piphanya untuk memastikan itu mutakhir:

    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. Gunakan pipuntuk menginstal PyQt5dan dari requirements.txt:

    pip install PyQt5
    pip install -r requirements.txt
    
  4. Unduh faf-uidbiner ke dalam faf-client/libdan buatlah itu dapat dieksekusi:

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

    python src/__main__.py
    

Python 2 dengan PyQt4 dan PySide (percobaan)

Sepertinya saya mungkin sudah tahu cara mengimpor QtWebKitmodul, tetapi saya belum menginstal game FAF, jadi saya tidak dapat sepenuhnya memverifikasi bahwa ini berfungsi dan karena itu jawaban ini sedang dalam proses.

Singkatnya, saya biasa aptmenginstal python-qt4, yang tidak memiliki QtWebKitmodul. Saya membuat dan mengaktifkan virtualenv tanpa menggunakan --system-site-packagesopsi dan digunakan pipuntuk menginstal PySide, yang memang memiliki QtWebKitmodul. Saya kemudian menghubungkan perpustakaan sistem yang sesuai dan file untuk PyQt4 ke dalam virtualenv. Lalu saya membuat beberapa perubahan faf-client/srcuntuk mengimpor QtWebKitmodul PySide. Solusi ini terinspirasi oleh /programming//a/28850104/486919 , /programming//a/36887302/486919 dan /programming//a/37616466/486919 .

Langkah:

  1. Pasang python-qt4:

    sudo apt update
    sudo apt install python-qt4
    
  2. cdke direktori pilihan Anda, yang akan ~/Desktop/tempdimaksudkan untuk menulis jawaban ini, git cloneversi saya repositori dan git checkoutyang patchcabang:

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

    patchCabang ini memiliki beberapa komitmen tambahan dibandingkan dengan developcabang default : 1) menghilangkan spesifikasi versi untuk cx_Freeze, yang memberi saya masalah instalasi jika saya menggunakan 4.3.4versi yang ditentukan sebelumnya, dan 2) mengimpor QtWebKitdari PySidebukan PyQt4.

  3. Buat dan aktifkan virtualenv untuk Python 2 dan pipmutakhirkan pemutakhiran hanya untuk memastikan itu mutakhir:

    virtualenv venv
    source venv/bin/activate
    pip install -U --force-reinstall pip
    
  4. Gunakan pipuntuk menginstal PySidedan dari requirements.txt:

    pip install PySide
    pip install -r requirements.txt
    
  5. Unduh faf-uidbiner ke dalam faf-client/libdan buatlah itu dapat dieksekusi:

    wget https://github.com/FAForever/uid/releases/download/v4.0.4/faf-uid -O lib/faf-uid
    chmod +x lib/faf-uid
    
  6. cdke site-packagesdirektori di dalam virtualenv dan buat symlink yang sesuai:

    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 .
    

    Catat .di akhir setiap symlink.

  7. cdkembali ke faf-clientdan menjalankan pythonpada src/__main__.py:

    cd -  # this goes back to previous directory, which should be ~/Desktop/temp/faf-client
    python src/__main__.py
    
edwinksl
sumber
pertama terima kasih! dan maaf saya ketinggalan antrian. Saya dirawat di rumah sakit. Saya terjebak di: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
@tatsu saya buruk. Anda harus cdmasuk ke faf-clientdirektori terlebih dahulu, lalu lakukan git checkout patch.
edwinksl
@edwinskl ya !! dan cd back up begitu selesai!
tatsu
@edwinskl tepat setelah pip install -r faf-client/requirements.txt saya menambahkan wget https://github.com/FAForever/uid/releases/download/v4.0.4/faf-uid -O ./faf-client/lib/faf-uid dan chmod +x ./faf-client/lib/faf-uidkemudian melakukan cd ./faf-client && ../venv/bin/python src/__main__.py sesuai posting forum tutorial asli saya membangun skrip saya dengan: forums.faforever.com/... FAF berjalan tetapi masih dengan log kesalahan.
tatsu
@tatsu Jangan ragu untuk menyarankan suntingan! Lagipula kamu sudah menginstal gamenya sementara aku tidak ...
edwinksl
1

Periksa ~/.bashrcoverride versi Python

Paket yang Anda ingin kompilasi membutuhkan Python versi 2.7.x. Konfirmasikan bahwa dengan perintah ini:

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

Itulah masalah dalam tanya jawab ini .

Anda tidak sendirian dengan linux error PyQt4 import QtWebKitpencarian google:

Sayangnya ada banyak hasil google lebih banyak tetapi ini saya percaya adalah yang paling relevan bagi Anda untuk membaca jika rekomendasi pertama tidak berjalan dengan baik.

WinEunuuchs2Unix
sumber
terima kasih tetapi saya tidak yakin apakah itu saya yang tidak mengerti atau apa tetapi saya menggunakan virtualenv yang (saya percaya) membantu saya tidak harus menginstal python2 secara lokal. mengingat bahwa saya tidak perlu khawatir tentang campur tangan python3 dengan apa pun. koreksi saya jika saya benar-benar kehilangan tanda di sini
tatsu