Remove venv creation for python package install stage - #3366
Conversation
|
Strangely using this pr and specifying one of |
|
Pinning charset-normalizer is ignored, this loads 3.5.1
|
|
@RobertFlatt Fixed now. Auto resolution was introduced in: #3271 With: requirements = python3, kivy==master, requests, charset-normalizer==2.1.1
With: requirements = python3, kivy==master, requestsNotice the difference of |
|
btw, I am just commenting here +1 to this PR to be merged because several users and I are hitting this bug since uv package manager pulls latest charset-normalizer which then hits you with the "charset_normalizer-3.5.1-cp314-cp314-android_24_arm64_v8a.whl is not a supported wheel on this platform." If you search "charset_normalizer" you get 3+ hits on the kivy discord android support channel alone.
this is a legit silent error that is probably causing p4a to freak out for many users and many people will not report it, but there have been 5 people in the support channel alone that have reported this issue and it is caused by charset updating with android wheels. please merge so the noobs don't suffer! thanks. |
|
|
| pip, 'install', ".", | ||
| '--target', ctx.get_site_packages_dir(arch), | ||
| '--disable-pip-version-check', '--upgrade', | ||
| *platforms, *indices, _env=env |
There was a problem hiding this comment.
Wouldn't the platform flag also require --no-deps and/or --only-binary=:all: like we use to have?
Also refs https://github.com/pypa/pip/blob/26.2.1/src/pip/_internal/cli/cmdoptions.py#L123-L129
| pip, platforms, indices, env = state | ||
|
|
||
| # It always runs with --upgrade so this is not required as it skips if module already exists | ||
| # modules = [m for m in modules if ctx.not_has_package(m, arch)] |
There was a problem hiding this comment.
Does this mean we redownload everytime and break offline build?
Maybe that's fine.
Also not_has_package() is now dead code and can be removed
| # Strip object files after potential Cython or native code builds: | ||
| if not ctx.with_debug_symbols and env.get("STRIP", None) is not None: |
There was a problem hiding this comment.
env here comes from env = environ.copy() in process_python_modules() which is os.environ.copy(), not the recipe env, so strip is likely never set hence this is now dead code
AndreMiras
left a comment
There was a problem hiding this comment.
Nice effort thank you! Looks good overall.
I didn't get a chance to test it, but I've raised a couple of concerns that might be worth a check and maybe a coverage if that wasn't caught by tests.
Let me know



charset-normalizerare installable without recipes (it directly picks up android wheels from pypi)