#python #ios #compiler-errors #kivy #pyrebase
Вопрос:
Я потратил по крайней мере пару недель на поиски ответов, создание и удаление своего приложения kivy и множество проб и ошибок. Наконец-то я нашел решение, которое отлично работает НА MAC и довольно просто. Я публикую это для всех, кто столкнулся с этой проблемой, потому что не смог найти ответы или информацию, которая могла бы помочь. Даже если ваша проблема не является точно такой же проблемой, это может сработать с вашей.
Начиная с самого начала:
- Установите homebrew по ссылке на их сайте.
brew install pkg-config sdl2 sdl2_image sdl2_ttf sdl2_mixer gstreamer
- закройте и снова откройте терминал
xcode-select --install
- Положите свой main.py, main.kv и все файлы проекта в папку и назовите ее «приложение». Поместите эту папку в другую папку и назовите ее своим именем «проект». Положите эту папку в папку и называйте ее как угодно (скажем, это ваше имя) «именем».
cd
в папку «проект», в которой хранится ваш файл «приложение».python3 -m venv venv
. venv/bin/activate
cd app
python3 main.py
Это попытка запустить сейчас в виртуальной среде, где вы не установили никаких модулей.pip install pycryptodomex pyrebase
и какие бы модули вам ни были нужны, приложение должно теперь работать в виртуальной сети. Как только убедишься, что это работает:pip uninstall pycryptodome
Закройте и снова откройте терминал, чтобы вы находились в домашнем каталоге, а не в (venv).
После этого:
brew install autoconf automake libtool pkg-config
brew link libtool
(вероятно, уже связано)cd
в вашу папку «имя»git clone https://github.com/kivy/kivy-ios.git
cd kivy-ios
python3 -m venv venv
. venv/bin/activate
pip install -e .
pip install cython
python toolchain.py build python3 kivy
Как только он будет построен, откройте отдельное/Новое окно терминала (оставьте также открытым исходное окно терминала) иcd
перейдите в папку «приложение», где находятся все файлы вашего проекта. Когда вы окажетесь там, распечатайте рабочий каталогpwd
и скопируйте его.python toolchain.py create
here just create project name and paste the working directory.- Open this newly created xcode project.
Once sorted the «signing and capabilities» side of things, when you try to run the project, you’ll get errors where modules can’t be found. - Don’t try to install pyrebase or pycryptodomex through toolchain in terminal.
In terminal, whist still in kivy-ios folder with (venv) active, you can install other packages like requests like so:
python toolchain.py pip install requests
- As you will find out below, we must copy and paste, but we can still install some packages that are related to pyrebase but won’t mess up on the install.
python toolchain.py pip install sseclient-py oauth2client gcloud requests-toolbelt jws
To get pyrebase and pycryptodome working here, we must do some pasting as it absolutely doesn’t work tying to pip install through toolchain.
- You need to open the project (venv) site-packages folder and the kivy-ios site-packages folder in seperate finder windows.
With the install of pyrebase the Crypto folder is created which is a result of the pycryptodome dependency being installed with it. This should not be visible if you uninstalled pycryptodome (as above). You will however see a Cryptodome folder which is from pycryptodomex being installed.
Inside of the pyrebase directory, open the pyrebase.py file and on line 23, change the import statement from Crypto
to Cryptodome
. Save the file and exit. This resolves the problem of the project being unable to load native module Crypto.Hash_SHA256
(and other Crypto file issues).
Copy and paste the following folders:
- Cryptodome
- pycryptodomex-3.10.4.dist-info
- pyrebase
- Pyrebase-3.0.27.dist-info
- python_jwt
- python_jwt-2.0.1.dist-информация
Скопируйте эти папки из пакетов сайта проекта и вставьте их в папку пакетов сайта приложения kivy (6 элементов).
Теперь проект Kivy-ios должен отлично работать на Xcode в симуляторе и на ваших устройствах.