Я пытаюсь выполнить FAF (исходно) в сочетании с FA (через вино)
(из-за представлений это сообщение получает и к тому, сколько обновили методы, я решил обновить этот вопрос для него, чтобы ответить, а также спросить. проверьте историю пересмотра этого сообщения для процесса к нахождению, что старый метод выполняет клиент Python и старые руководства),
используйте этот сценарий: (обновленный 12.03.2019)
https://github.com/tatsujb/installFAFscript
https://www.youtube.com/watch? v=BEWUEoQ8Q4k
Как к: скомпилируйте это приложение Python (FAF) из источника:
и выполнение благодаря "Python 3 @edwinksl с PyQt5" руководство. отмеченный его как решение. хорошее задание!
Извините я занял много времени для обновления этого сообщения. это получило 7 000 представлений! это действительно заслуживает актуальной информации.
Так как я спросил много, произошел. 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 не утверждают, изменяя зависимости и состав пакета, а также использование 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/),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: файл версии выпуска.теперь это должно работать, но за 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.
Удачи!
Примечание: шаги для Python 3 с PyQt5 доказаны, в то время как шаги для Python 2 с PyQt4 и PySide все еще являются экспериментальными.
Похоже, что ветвь 474-feature-py3
репозитория GitHub FAForever / client использует Python 3 с PyQt5, который содержит QtWebKit. Поэтому использование этой ветки является наиболее простым решением. Обратите внимание, что PyQt5 (но не PyQt4) на самом деле может быть установлен с pip
, так что это намного удобнее.
Шаги для Python 3 с PyQt5:
cd
в каталог по вашему выбору, который будет ~/Desktop/temp
с целью написания этого ответа, git clone
FAForever / клиент 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
Создать и активировать 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
Используйте 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
Похоже, я понял, как импортировать модуль QtWebKit
, но я У меня не установлена игра FAF, поэтому я не могу полностью убедиться, что это работает, и поэтому этот ответ находится в стадии разработки.
В двух словах, я использовал apt
для установки python-qt4
, который не имеет , имеет модуль QtWebKit
. Я создал и активировал virtualenv без использования опции --system-site-packages
и использовал pip
для установки PySide
, который имеет модуль QtWebKit
. Затем я вставил ссылки на соответствующие системные библиотеки и файлы для PyQt4 в virtualenv. Затем я внес пару изменений в 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
.
Создайте и активируйте virtualenv для Python 2 и принудительно обновите pip
, чтобы убедиться, что он обновлен:
virtualenv venv
source venv/bin/activate
pip install -U --force-reinstall pip
Использовать [ 1152] для установки 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
[ 1179] 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
~/.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']
>>>
В этом была проблема в Q & A .
linux error PyQt4 import QtWebKit
поиском Google: К сожалению, есть много больше результатов Google, но я думаю, что это наиболее уместно для вас, чтобы прочитать , если первая рекомендация не удалась.