私はFAF(ネイティブ)をFA(Wine経由)と組み合わせて実行しようとしています
(この投稿の閲覧数とメソッドの更新頻度を考慮して、この質問を更新して、質問するだけでなく回答もすることにしました。Python クライアントを実行する古いメソッドと古いガイドを見つけるプロセスについては、この投稿の改訂履歴を確認してください)
ベータ版Javaクライアント:
このスクリプトを使用します:(2019年3月12日更新)
https://github.com/tatsujb/installFAFscript
https://www.youtube.com/watch?v=BEWUEoQ8Q4k
Python クライアント: (現在は廃止)
コンパイル方法このPythonアプリ(FAF) 出典:
@edwinksl の「Python 3 with PyQt5」ガイドのおかげで、起動して実行できました。彼を解決策としてマークしました。よくできました!
更新 (2018/1/31)
この投稿を更新するのが遅くなってしまい申し訳ありません。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
現時点では、ウィキはそれほど最新ではありません。
しばらくの間、仮想環境を必要とせずにネイティブ Python で faf を実行できましたが、QT の依存関係とパッケージ構成の変更、およびそれらの FAF の使用により、再びそれが壊れてしまいました...一時的なものだといいのですが。
安心してください。私は個人的にそれを実行しており、慰めを提供するためにここにいます(最初に手順 6 と 7 をスキップしてみてください。これらは不要な場合があります)。
- いくつかの前提条件をインストールします:
sudo apt update && sudo apt install wget PyQt5.QtMultimedia python3-idna python3-semantic-version python3-pyqt5 python3-pyqt5.qtwebengine
cd Downloads && wget https://github.com/FAForever/client/archive/0.16.1.tar.gz
(または最新のリリースhttps://github.com/FAForever/client/releases/)- 抽出(この例では、home に抽出します)(
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
) cd fafclient/
: 作業ディレクトリへ移動sed -i 1,1d requirements.txt
: 要件から cxFreeze を削除します (必須ではないため、コンパイルが強制終了されます)virtualenv -p python3 faf
pip install -r requirements.txt
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 による実行を許可します。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を実行します。
乾杯!
答え1
注: PyQt5 を使用した Python 3 の手順は動作することが実証されていますが、PyQt4 および PySide を使用した Python 2 の手順はまだ実験段階です。
Python 3 と PyQt5 (動作が実証済み)
474-feature-py3
FAForever/client GitHub リポジトリのブランチでは、QtWebKit を含む PyQt5 を使用した Python 3 が使用されているようです。したがって、このブランチを使用するのが最も簡単な解決策です。PyQt5 (PyQt4 ではない) は実際には でインストールできるpip
ため、はるかに便利になります。
PyQt5 を使用した Python 3 の手順:
cd
任意のディレクトリに、~/Desktop/temp
この回答を書くためのgit clone
FAForever/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
Python 3 用の仮想環境を作成してアクティブ化し (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
pip
インストールPyQt5
および使用には以下を使用しますrequirements.txt
:pip install PyQt5 pip install -r requirements.txt
バイナリをダウンロードし
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
実行
python
場所src/__main__.py
:python src/__main__.py
PyQt4 と PySide を使用した Python 2 (実験的)
モジュールをインポートする方法がわかったようですQtWebKit
が、FAF ゲームがインストールされていないため、これが機能するかどうかを完全に確認することはできません。そのため、この回答は現在進行中です。
簡単に言うと、私はapt
をインストールしていましたpython-qt4
が、ないにはモジュールがあります。オプションQtWebKit
を使用せずに仮想環境を作成してアクティブ化し--system-site-packages
、pip
をインストールするために使用しました。次に、PyQt4 の適切なシステムライブラリとファイルを仮想環境にシンボリックリンクしました。次に、からモジュールをインポートするために にいくつかの変更を加えました。このソリューションは、PySide
QtWebKit
faf-client/src
QtWebKit
PySide
https://stackoverflow.com/a/28850104/486919、https://stackoverflow.com/a/36887302/486919そしてhttps://stackoverflow.com/a/37616466/486919。
手順:
インストール
python-qt4
:sudo apt update sudo apt install python-qt4
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
この
patch
ブランチには、デフォルトdevelop
ブランチと比較して、いくつかの追加コミットがあります。1) のバージョン指定が削除されcx_Freeze
、以前指定したバージョンを使用した場合にインストールの問題が発生していました4.3.4
。2)ではなくQtWebKit
からインポートします。PySide
PyQt4
Python 2 用の仮想環境を作成してアクティブ化し、強制的にアップグレードして
pip
、最新の状態であることを確認します。virtualenv venv source venv/bin/activate pip install -U --force-reinstall pip
pip
インストールPySide
および使用には以下を使用しますrequirements.txt
:pip install PySide pip install -r requirements.txt
バイナリをダウンロードし
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
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 .
.
各シンボリックリンクの末尾にあるに注意してください。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
答え2
~/.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 検索を使っているのはあなただけではありません:
- ImportError: 'PyQt4.QtWebKit' という名前のモジュールがありません
- spyder を実行できません / ImportError: QtWebKit という名前のモジュールがありません #3200
- ImportError: 'PyQt4.QtWebKit' という名前のモジュールがありません #1683
- PyQt4-WebKit がないため、一部の PyQt4 アプリケーションが Yakkety で起動しない
- Python は特定の PyQt4 QtWebKit モジュールをインポートできません
- Python 2.7.11 - ImportError: 名前 QtWebKit をインポートできません - Kali Linux / Debian 8
- PyQt4: 「ImportError: No module named QtWebkit」が表示されるのはなぜですか?
残念ながら、Google の結果は他にもたくさんありますが、これらがあなたにとって最も適切なものだと思います。もし最初の推奨はうまくいきません。