native FAF บน Ubuntu (QtWebKit บน Ubuntu 17.04+)


11

ฉันพยายามเรียกใช้ FAF (ดั้งเดิม) ร่วมกับ FA (ผ่านไวน์)

(เนื่องจากความเห็นที่โพสต์นี้ได้รับและวิธีการอัปเดตฉันได้ตัดสินใจที่จะอัปเดตคำถามนี้เพื่อตอบและถามตรวจสอบประวัติการแก้ไขของโพสต์นี้เพื่อให้กระบวนการค้นหาวิธีเก่าเพื่อเรียกใช้ หลามลูกค้าและคู่มือเก่า)


ไคลเอนต์ Java สถานะเบต้า:

ป้อนคำอธิบายรูปภาพที่นี่

ใช้สคริปต์นี้: (อัปเดต 3/12/2019)

https://github.com/tatsujb/installFAFscript

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


Python ไคลเอนต์: (ตอนนี้ OBSOLETE)

ทำงาน FAF

วิธีการ: รวบรวมแอพไพ ธ อน (FAF) จากแหล่งที่มา:

ทำงานได้และต้องขอบคุณคู่มือ "Python 3 with PyQt5" ของ @edwinksl ทำเครื่องหมายว่าเขาเป็นทางออก ดีมาก!

อัปเดต (31/1/2018)

ขออภัยฉันใช้เวลานานมากในการอัพเดทโพสต์นี้ มันได้รับวิว 7000 ครั้ง! มันสมควรได้รับข้อมูลที่ทันสมัย

ตั้งแต่ฉันถามมากเกิดขึ้น FAF ในขณะนี้มีการสนับสนุน linux มากหรือน้อย พวกเขายังมีวิกิเพื่อติดตั้ง (และต่อ distro!):

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 ของ aver เปลี่ยนการพึ่งพาและองค์ประกอบของแพ็คเกจรวมถึงการใช้ 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: ดาวน์โหลด login binary และ: sudo chmod +x /usr/bin/faf-uidอนุญาตให้ดำเนินการโดย faf
  9. touch res/RELEASE-VERSION && echo "0.16.1" >> res/RELEASE-VERSION : ตอบสนองความต้องการขั้นสุดท้ายของ faf: ไฟล์รุ่นที่วางจำหน่าย

ตอนนี้มันควรจะวิ่ง แต่สำหรับ heck ของมันมาทำให้นักวิ่ง:

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 โดยตรง
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

ดังนั้นใส่ source uri ใน - askubuntu.com/questions/496549/…
Panther

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 cloneFAForever client / พื้นที่เก็บข้อมูล GitHub และสาขา:git checkout474-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 checkoutpatch

    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จากแทนPySidePyQt4

  3. สร้างและเปิดใช้งาน virtualenv สำหรับ Python 2 และ force-upgrade 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 .
    

    จดบันทึก.ที่ท้ายของแต่ละ symlink

  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

@tatsu ฉันไม่ดี คุณจำเป็นต้องcdเข้าไปในไดเรกทอรีแรกแล้วทำfaf-client git checkout patch
edwinksl

@edwinskl yup !! และ cd สำรองเมื่อเสร็จแล้ว!
tatsu

@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 รัน bbut ยังคงมีบันทึกข้อผิดพลาด
tatsu

@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 ที่เข้าไปยุ่งกับอะไร แก้ไขฉันถ้าฉันพลาดเครื่องหมายที่นี่อย่างสมบูรณ์
tatsu
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.