buildozer
buildozer copied to clipboard
[RFC] kivy-ios dependencies not being installed and how to fix it
Versions
- Python: Any
- OS: Any
- Buildozer: Master
Description
The dependencies for iOS are not automatically installed. For android you can just run buildozer android debug
and python-for-android and its dependencies will be installed.
Why I think this is happening
On android targets/android.py install_platform()
installs the dependencies directly (by running a regex on setup.py), on iOS targets/ios.py install_platform()
calls (on its parent class) buildozer/target.py install_or_update_repo()
. From the docs of install_or_update_repo()
, it seems that is where requirements should be installed.
Proposed solution
So to do things the "correct way" the in functionality in targets/android.py install_platform()
(more specifically in the helper function _install_p4a
) would have to be "moved" to buildozer/target.py install_or_update_repo()
. This seems simple enough, I could also add support for installing xcode and brew stuff in targets/ios.py install_platform()
as it's done in android.
Am I missing something?
Related
#1348 and #722
To be more specific, what I have in mind is using pip install -r requirements.txt
and keeping the dependencies of p4a in requirements.txt. setup.py and requirements.txt would need to be kept in sync but older installations of buildozer would keep working with newer p4a as if nothing had happened. kivy-ios currently has a requirements.txt.
It seems that setup.py and requirements.txt are not equivalent. setup.py is supposed to use the loosest possible requirements while requirements.txt are a set of exact and minimal requirements to setup the development environment. Would creating a third file buildozer_requirements.txt be a good solution?
Just confirming that setup.py and requirements.txt are different. The first one acts like a shopping list. The latter acts like a packing list.
I use the simple mnemonic: setup.py records what you require, while requirements.py records your set-up :-(
Meanwhile, buildozer.spec also records the requirements, so creating a third file doesn't sound like a good approach.
I believe work has been done in this area in the last year or two. Is this request already satisfied?