ubuntu 上的原生 FAF(ubuntu 17.04+ 上的 QtWebKit)

tat*_*tsu 11 pyqt software-installation qt4 17.04 qtwebkit

我正在尝试将 FAF(本机)与 FA(通过 wine)结合运行

(由于这篇文章收到的意见以及方法更新了多少,我决定更新这个问题,以便它回答和提问。检查这篇文章的修订历史,以找到运行旧方法的过程python 客户端和旧指南)


Beta 状态 Java 客户端:

在此处输入图片说明

使用此脚本:(2019 年 3 月 12 日更新)

https://github.com/tatsujb/installFAFscript

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


Python 客户端:(现已过时)

工作FAF

如何:从源代码编译这个 python 应用程序(FAF):

感谢 @edwinksl 的“Python 3 with PyQt5”指南。将他标记为解决方案。做得好!

更新 (31/1/2018)

对不起,我花了这么长时间才更新这篇文章。已获得 7000 次浏览!它真的值得最新的信息。

自从我问了很多事情发生了。FAF 现在或多或少有 linux 支持。他们甚至有一个 wiki 来安装它(以及每个发行版!):

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/ : 移动到工作目录
  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
Run Code Online (Sandbox Code Playgroud)

然后./FAF.sh运行FAF。

干杯!

edw*_*ksl 4

注意:使用 PyQt5 的 Python 3 的步骤已被证明是有效的,而使用 PyQt4 和 PySide 的 Python 2 的步骤仍处于实验阶段。

Python 3 与 PyQt5(已证明可以工作)

FAForever/client GitHub 存储库的分支似乎474-feature-py3使用 Python 3 和 PyQt5,其中包含 QtWebKit。因此,使用这个分支是最直接的解决方案。请注意,PyQt5(但不是 PyQt4)实际上可以使用 来安装pip,这样会让事情变得更方便。

使用 PyQt5 的 Python 3 步骤:

  1. cd进入您选择的目录(用于~/Desktop/temp编写此答案)、git cloneFAForever/client 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
    
    Run Code Online (Sandbox Code Playgroud)
  2. 创建并激活 Python 3 的 virtualenv(Ubuntu 17.04 的默认值是 Python 3.5)并强制升级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
    
    Run Code Online (Sandbox Code Playgroud)
  3. 用于pip安装PyQt5并来自requirements.txt

    pip install PyQt5
    pip install -r requirements.txt
    
    Run Code Online (Sandbox Code Playgroud)
  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
    
    Run Code Online (Sandbox Code Playgroud)
  5. 运行:pythonsrc/__main__.py

    python src/__main__.py
    
    Run Code Online (Sandbox Code Playgroud)

使用 PyQt4 和 PySide 的 Python 2(实验性)

看来我可能已经弄清楚如何导入QtWebKit模块,但我没有安装 FAF 游戏,所以我无法完全验证这是否有效,因此这个答案是一项正在进行的工作。

简而言之,我以前apt安装的python-qt4,它没有QtWebKit模块。我创建并激活了一个 virtualenv ,但没有使用该--system-site-packages选项,并用于pip安装PySide,它确实有该QtWebKit模块。然后,我将 PyQt4 的相应系统库和文件符号链接到 virtualenv 中。然后我做了一些更改以从faf-client/src导入模块。该解决方案的灵感来自/sf/answers/2019507311//sf/answers/2582111171//sf/answers/2633152651/QtWebKitPySide

脚步:

  1. 安装python-qt4

    sudo apt update
    sudo apt install python-qt4
    
    Run Code Online (Sandbox Code Playgroud)
  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
    
    Run Code Online (Sandbox Code Playgroud)

    patch与默认分支相比,此分支有几个额外的提交develop:1)它摆脱了 的版本规范cx_Freeze,如果我使用之前指定的版本,这会给我带来安装问题4.3.4,2)它QtWebKit从而PySide不是导入PyQt4

  3. 创建并激活 Python 2 的 virtualenv 并强制升级pip以确保它是最新的:

    virtualenv venv
    source venv/bin/activate
    pip install -U --force-reinstall pip
    
    Run Code Online (Sandbox Code Playgroud)
  4. 用于pip安装PySide并来自requirements.txt

    pip install PySide
    pip install -r requirements.txt
    
    Run Code Online (Sandbox Code Playgroud)
  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
    
    Run Code Online (Sandbox Code Playgroud)
  6. cdsite-packagesvirtualenv 内的目录并创建适当的符号链接:

    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 .
    
    Run Code Online (Sandbox Code Playgroud)

    请注意.每个符号链接末尾的 。

  7. cd返回faf-clientpython运行src/__main__.py

    cd -  # this goes back to previous directory, which should be ~/Desktop/temp/faf-client
    python src/__main__.py
    
    Run Code Online (Sandbox Code Playgroud)