Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pip version >= 21.3 raise "OSError: Cannot find path to android app folder" in Termux's Arch Linux Subsystem #10887

Closed
1 task done
nukemiko opened this issue Feb 7, 2022 · 5 comments
Labels
project: vendored dependency Related to a vendored dependency type: bug A confirmed bug or unintended behavior

Comments

@nukemiko
Copy link

nukemiko commented Feb 7, 2022

Description

Unable to use pip version greater than or equal to 21.3 in virtual environment created in Termux's Arch Linux subsystem. It will be raise: OSError: Cannot find path to android app folder.

The Arch Linux subsystem is deployed by install script from SDRausty/TermuxArch.

This problem does not appear on pip versions less than 21.3.

A reddit page reported a similar problem: https://www.reddit.com/r/termux/comments/p6l3yh/i_cant_use_python_virtualenv_on_termux_proot/

Expected behavior

No response

pip version

Greater than or equal to 21.3

Python version

3.10.2

OS

Android 11, Arch Linux subsystem in Termux

How to Reproduce

  1. Deploy a Arch Linux subsystem environment by install script from SDRausty/TermuxArch. Don't add any parameters. The specific link for install script: https://raw.githubusercontent.com/TermuxArch/TermuxArch/master/setupTermuxArch
  2. Install python in the subsystem, and create a python virtual environment. (The latest version of pip in the Arch Linux arm repositories: 20.3.4-3, python: 3.10.2-1)
  3. Switch to the virtual environment you just created and update pip to 21.3 or higher. (The version of pip in the virtual environment before the update is 21.2.4)
  4. Execute command pip again. You can see the full screen of error messages.

Output

(Skip the part about deploying the subsystem)
u0_a398@localhost:pts/0->/data/data/com.termux/files/home (0)
> startarch

Welcome to Arch Linux in Termux PRoot!
Install a package: pacman -S package
More  information: pacman -[D|F|Q|R|S|T|U]h
Search   packages: pacman -Ss query                  Upgrade  packages: pacman -Syu

Chat:   wiki.termux.com/wiki/Community
GitHub: github.com/archlinuxarm                      Help:   help man and info man
IRC:    archlinuxarm.org/about/contact

root00:20~$ pacman -Si python python-pip
软件库         : core
名字           : python
版本           : 3.10.2-1
描述           : Next generation of the python                        high-level scripting language
架构           : aarch64
URL            : https://www.python.org/
软件许可       : custom
组             : 无
提供           : python3
依赖于         : bzip2  expat  gdbm  libffi  libnsl
                 libxcrypt  openssl  zlib
可选依赖       : python-setuptools
                 python-pip
                 sqlite
                 mpdecimal: for decimal
                 xz: for lzma
                 tk: for tkinter
与它冲突       : 无
取代           : python3
下载大小       : 10.60 MiB
安装后大小     : 54.11 MiB
打包者         : Arch Linux ARM Build System
                 <builder+n1@archlinuxarm.org>
编译日期       : 2022年01月24日 星期一 05时20分14秒
验证者         : MD5校验值  SHA-256 校验值  数字签名

软件库         : extra
名字           : python-pip
版本           : 20.3.4-3
描述           : The PyPA recommended tool for
                 installing Python packages
架构           : any
URL            : https://pip.pypa.io/
软件许可       : MIT
组             : 无
提供           : 无
依赖于         : python-appdirs  python-cachecontrol
                 python-colorama  python-contextlib2
                 python-distlib  python-distro
                 python-html5lib  python-packaging
                 python-pep517  python-progress
                 python-requests  python-retrying
                 python-resolvelib
                 python-setuptools  python-six
                 python-toml  python-pyopenssl
可选依赖       : 无
与它冲突       : 无
取代           : 无
下载大小       : 386.79 KiB
安装后大小     : 1622.16 KiB
打包者         : Arch Linux ARM Build System
                 <builder+n1@archlinuxarm.org>
编译日期       : 2021年12月27日 星期一 02时54分51秒
验证者         : MD5校验值  SHA-256 校验值  数字签名

root00:20~$ python -m venv VirtualEnviron
root00:20~$ source VirtualEnviron/bin/activate
(VirtualEnviron) root00:21~$ pip --version
pip 21.2.4 from /root/VirtualEnviron/lib/python3.10/site-packages/pip (python 3.10)
(VirtualEnviron) root00:21~$ pip install -U pip==21.3
Collecting pip==21.3
  Using cached pip-21.3-py3-none-any.whl (1.7 MB)
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 21.2.4
    Uninstalling pip-21.2.4:
      Successfully uninstalled pip-21.2.4
Successfully installed pip-21.3
(VirtualEnviron) root00:21~$
(VirtualEnviron) root00:21~$ pip
Traceback (most recent call last):
  File "/root/VirtualEnviron/lib/python3.10/site-packages/pip/_vendor/platformdirs/android.py", line 83, in _android_folder
    from jnius import autoclass  # noqa: SC200
ModuleNotFoundError: No module named 'jnius'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/root/VirtualEnviron/bin/pip", line 5, in <module>
    from pip._internal.cli.main import main
  File "/root/VirtualEnviron/lib/python3.10/site-packages/pip/_internal/cli/main.py", line 9, in <module>
    from pip._internal.cli.autocompletion import autocomplete
  File "/root/VirtualEnviron/lib/python3.10/site-packages/pip/_internal/cli/autocompletion.py", line 10, in <module>
    from pip._internal.cli.main_parser import create_main_parser
  File "/root/VirtualEnviron/lib/python3.10/site-packages/pip/_internal/cli/main_parser.py", line 8, in <module>
    from pip._internal.cli import cmdoptions
  File "/root/VirtualEnviron/lib/python3.10/site-packages/pip/_internal/cli/cmdoptions.py", line 23, in <module>
    from pip._internal.cli.parser import ConfigOptionParser
  File "/root/VirtualEnviron/lib/python3.10/site-packages/pip/_internal/cli/parser.py", line 12, in <module>
    from pip._internal.configuration import Configuration, ConfigurationError
  File "/root/VirtualEnviron/lib/python3.10/site-packages/pip/_internal/configuration.py", line 26, in <module>
    from pip._internal.utils.logging import getLogger
  File "/root/VirtualEnviron/lib/python3.10/site-packages/pip/_internal/utils/logging.py", line 13, in <module>
    from pip._internal.utils.misc import ensure_dir
  File "/root/VirtualEnviron/lib/python3.10/site-packages/pip/_internal/utils/misc.py", line 40, in <module>
    from pip._internal.locations import get_major_minor_version, site_packages, user_site
  File "/root/VirtualEnviron/lib/python3.10/site-packages/pip/_internal/locations/__init__.py", line 14, in <module>
    from . import _distutils, _sysconfig
  File "/root/VirtualEnviron/lib/python3.10/site-packages/pip/_internal/locations/_distutils.py", line 19, in <module>
    from .base import get_major_minor_version
  File "/root/VirtualEnviron/lib/python3.10/site-packages/pip/_internal/locations/base.py", line 12, in <module>
    USER_CACHE_DIR = appdirs.user_cache_dir("pip")
  File "/root/VirtualEnviron/lib/python3.10/site-packages/pip/_internal/utils/appdirs.py", line 17, in user_cache_dir
    return _appdirs.user_cache_dir(appname, appauthor=False)
  File "/root/VirtualEnviron/lib/python3.10/site-packages/pip/_vendor/platformdirs/__init__.py", line 112, in user_cache_dir
    return PlatformDirs(appname=appname, appauthor=appauthor, version=version, opinion=opinion).user_cache_dir
  File "/root/VirtualEnviron/lib/python3.10/site-packages/pip/_vendor/platformdirs/android.py", line 41, in user_cache_dir
    return self._append_app_name_and_version(_android_folder(), "cache")
  File "/root/VirtualEnviron/lib/python3.10/site-packages/pip/_vendor/platformdirs/android.py", line 95, in _android_folder
    raise OSError("Cannot find path to android app folder")
OSError: Cannot find path to android app folder
(VirtualEnviron) root00:21~$

Code of Conduct

@nukemiko nukemiko added S: needs triage Issues/PRs that need to be triaged type: bug A confirmed bug or unintended behavior labels Feb 7, 2022
@pradyunsg
Copy link
Member

Please file an issue against https://github.com/platformdirs/platformdirs.

The use of a different directory comes from that package.

@nukemiko
Copy link
Author

Please file an issue against https://github.com/platformdirs/platformdirs.

The use of a different directory comes from that package.

I reported the bug at platformdirs/platformdirs#62, and it has now been fixed: platformdirs/platformdirs#63.

@uranusjr uranusjr added the project: vendored dependency Related to a vendored dependency label Feb 10, 2022
@pradyunsg pradyunsg removed the S: needs triage Issues/PRs that need to be triaged label Feb 10, 2022
@pradyunsg pradyunsg modified the milestones: 22.0.3, 23.2 Feb 10, 2022
@pradyunsg
Copy link
Member

pradyunsg commented Feb 10, 2022

This fix will get pulled in, in the next release cycle. I bunged up the milestones; ignore that. :)

@SrQubit18
Copy link

tengo el mismo error pero en VScode android
aparentemente funciona igual que termux
emulando un sistema linux

@uranusjr
Copy link
Member

uranusjr commented Jun 5, 2023

pip is now on platformdirs 3.2, which should include the upstream fix. Please open a new issue if there is further problems.

@uranusjr uranusjr closed this as completed Jun 5, 2023
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jul 5, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
project: vendored dependency Related to a vendored dependency type: bug A confirmed bug or unintended behavior
Projects
None yet
Development

No branches or pull requests

4 participants