ubuntu上的本机FAF(ubuntu 17.04+上的QtWebKit)


11

我正在尝试与FA(通过红酒)一起运行FAF(本机)

(由于该帖子收到的意见以及方法已更新了多少,我决定更新此问题以供回答和询问。请查看此帖子的修订历史记录,以查找用于运行该方法的旧方法的过程。 python客户端和旧指南)


Beta状态的Java客户端:

在此处输入图片说明

使用此脚本:(更新3/12/2019)

https://github.com/tatsujb/installFAFscript

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


Python客户端:(现在已过时)

工作FAF

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

@edwinksl的“带有PyQt5的Python 3”指南帮助启动和运行。将他标记为解决方案。做得好!

更新(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

现在,Wiki还不是最新的。

有一阵子我可以使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/ :移至工作目录
  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维护人员联系。
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


2
@tatsu我想我设法使QtWebKit正常工作,但是我没有FAF游戏,所以我不能完全验证它是否有效。让我尝试建立一个聊天室,以便我们进行讨论。
edwinksl

2
@tatsu同时我写了一个答案。试试看,看看是否有帮助。
edwinksl

Answers:


4

注意:事实证明,使用PyQt5的Python 3的步骤可以工作,而使用PyQt4和PySide的Python 2的步骤仍在试验中。

带有PyQt5的Python 3(经验证可以工作)

似乎474-feature-py3FAForever /客户端GitHub存储库的分支使用带有PyQt5的Python 3,其中包含QtWebKit。因此,使用此分支是最直接的解决方案。请注意,实际上可以使用来安装PyQt5(但不能安装PyQt4)pip,从而使事情变得更加方便。

使用PyQt5的Python 3的步骤:

  1. cd到一个目录您的选择,这将是~/Desktop/temp写这个答案的目的,git clone在FAForever /客户端的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. 为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
    
  3. 使用pip安装PyQt5requirements.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. 运行pythonsrc/__main__.py

    python src/__main__.py
    

带有PyQt4和PySide的Python 2(实验性)

看来我可能已经找到了如何导入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)它进口QtWebKitPySide,而不是PyQt4

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

    virtualenv venv
    source venv/bin/activate
    pip install -U --force-reinstall pip
    
  4. 使用pip安装PySiderequirements.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. 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 .
    

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

  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
    

首先谢谢你!对不起,我错过了队列。我住院了 我被困在: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是的!完成后,将cd备份!
tatsu

pip install -r faf-client/requirements.txt 添加完@edwinskl之后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

@tatsu随时建议编辑!毕竟您已经安装了游戏,但我没有...
edwinksl

1

检查~/.bashrcPython版本是否覆盖

您要编译的软件包需要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 QtWebKitGoogle搜索:

不幸的是,还有更多的Google搜索结果,但是如果第一个建议没有出台,我相信这些对于您来说是最相关的。


谢谢,但是我不确定是不是我不理解或者是什么,但是我正在使用virtualenv(我相信)可以帮助我不必在本地安装python2。鉴于我不必担心python3干预任何事情。如果我完全错过了这里的话,请纠正我
tatsu
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.