T
Termux•2d ago
NSPG911

Unable to install certain tree-sitter packages from pypi

if i try to install tree-sitter-markdown, tree-sitter-json, tree-sitter-toml, tree-sitter-yaml, tree-sitter-html, tree-sitter-rust, tree-sitter-xml or tree-sitter-java from pypi, it just fails (also is it possible to get python 3.13 on termux?)
32 Replies
owokitty
owokitty•2d ago
in Termux, those packages are supposed to be installed from commands like pkg install tree-sitter-markdown , not pip install tree-sitter-markdown
NSPG911
NSPG911OP•2d ago
how will it interface with python packages? i need it for textual[syntax]
owokitty
owokitty•2d ago
@NSPG911 if you would like to have python 3.13, that is understandable, but it takes a very long time to update that in Termux. Here is the discussion page for that if you are interested in helping to do it. https://github.com/termux/termux-packages/pull/24679
owokitty
owokitty•2d ago
I am planning to help do it in the future but only after I finish all of my other PRs that are currently open
NSPG911
NSPG911OP•2d ago
i want to have python 3.13 because the thing im working on is locked to python >= 3.13
owokitty
owokitty•2d ago
yes
NSPG911
NSPG911OP•2d ago
but im fine to downgrade it if necessary, just need the tree sitter packages huh, the pr is closed
Biswa96
Biswa96•2d ago
You didn't mention what errors you are seeing.
owokitty
owokitty•2d ago
@NSPG911 does this work for you? this works for me
git clone https://github.com/tree-sitter-grammars/tree-sitter-markdown.git
cd tree-sitter-markdown
pip install .
git clone https://github.com/tree-sitter-grammars/tree-sitter-markdown.git
cd tree-sitter-markdown
pip install .
NSPG911
NSPG911OP•2d ago
i prefer to use uv for my packages and stuff so not sure how i would install it into the project
owokitty
owokitty•2d ago
ok great but keep in mind that pure-venvs often don't work in Termux so if it doesn't work you might need an unsandboxed-venv could you show me an example of the commands that you use to set up your project?
NSPG911
NSPG911OP•2d ago
i remove the project.requires-python config from pyproject.toml then
rm uv.lock
rm .python-version
uv sync
rm uv.lock
rm .python-version
uv sync
owokitty
owokitty•2d ago
error is this in pip install tree-sitter-markdown, does not happen when using pip install . on the git repository tree-sitter-markdown-inline/src/parser.c:3:10: fatal error: 'tree_sitter/parser.h' file not found
NSPG911
NSPG911OP•2d ago
NSPG911
NSPG911OP•2d ago
uv build . in the directory fails, pip install . works whats the difference?
owokitty
owokitty•2d ago
does this work? I tried this
~/code/test $ uv sync
error: No `pyproject.toml` found in current directory or any parent directory
~/code/test $ uv init
Initialized project `test`
~/code/test $ uv sync
Using CPython 3.12.11 interpreter at: /data/data/com.termux/files/usr/bin/python3.12
Creating virtual environment at: .venv
Resolved 1 package in 23ms
Audited in 0.04ms
~/code/test $ uv pip install ~/code/tree-sitter-markdown/
Resolved 1 package in 19ms
Building tree-sitter-markdown @ file:///data/data/com.termux/files/home/co
ā ™ Preparing packages... (0/1) warning: Failed to hardlink files; falling back to full copy. This may lead to degraded performance.
If the cache and target directories are on different filesystems, hardlinking may not be supported.
Built tree-sitter-markdown @ file:///data/data/com.termux/files/home/co
Prepared 1 package in 1.96s
Installed 1 package in 21ms
+ tree-sitter-markdown==0.5.1 (from file:///data/data/com.termux/files/home/code/tree-sitter-markdown)
~/code/test $
~/code/test $ uv sync
error: No `pyproject.toml` found in current directory or any parent directory
~/code/test $ uv init
Initialized project `test`
~/code/test $ uv sync
Using CPython 3.12.11 interpreter at: /data/data/com.termux/files/usr/bin/python3.12
Creating virtual environment at: .venv
Resolved 1 package in 23ms
Audited in 0.04ms
~/code/test $ uv pip install ~/code/tree-sitter-markdown/
Resolved 1 package in 19ms
Building tree-sitter-markdown @ file:///data/data/com.termux/files/home/co
ā ™ Preparing packages... (0/1) warning: Failed to hardlink files; falling back to full copy. This may lead to degraded performance.
If the cache and target directories are on different filesystems, hardlinking may not be supported.
Built tree-sitter-markdown @ file:///data/data/com.termux/files/home/co
Prepared 1 package in 1.96s
Installed 1 package in 21ms
+ tree-sitter-markdown==0.5.1 (from file:///data/data/com.termux/files/home/code/tree-sitter-markdown)
~/code/test $
NSPG911
NSPG911OP•2d ago
why does that work 😭 so like do i have to do that for everything else??
owokitty
owokitty•2d ago
here is more information about that: https://github.com/termux/termux-packages/issues/23567#issuecomment-2692983425 what I referred to as "unsandboxed-venv", or what I mean by that, is the command "python3 -m venv myenv --system-site-packages" probably but it's possible for us to make python-tree-sitter-X packages for all of them by copying the way they are provided on Arch Linux AUR, but it can take a while to set up that https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=python-tree-sitter-markdown
NSPG911
NSPG911OP•2d ago
oh thats interesting, never used that before should i proot-distro to archlinux?
owokitty
owokitty•2d ago
if you would like to then you can yes, and arch linux has python 3.13 and normal venvs work there
NSPG911
NSPG911OP•2d ago
is there any major differences between ubuntu (im assuming thats what termux uses) and arch, aside from apt and pacman? i also have an issue with arch, it says Warning: CPU doesn't support 32-but instructions, some software may not work.
owokitty
owokitty•2d ago
actually the only thing that is really similar between ubuntu and termux is that they both use apt, everything else is more different from ubuntu than ubuntu is from arch linux
NSPG911
NSPG911OP•2d ago
oh
owokitty
owokitty•2d ago
if you compare them both to termux, then there actually aren't very many major differences between ubuntu and arch linux other than the package versions, the default settings of some things, the package manager, the preinstalled packages, and a bunch of other stuff that is actually less important than it seems when you compare both of them to Termux, which is significantly different from them on a deeper level
NSPG911
NSPG911OP•2d ago
anyways so this wont be open again?
owokitty
owokitty•2d ago
interesting, i have an 64-bit-ARM-only computer also where I am running Ubuntu and Termux, and I ran Arch Linux in a VM on it for a little while (and the VM would have also been affected by the 64-bit-only-ness), but I don't remember ever seeing that message yet
NSPG911
NSPG911OP•2d ago
im on a oneplus 13r
owokitty
owokitty•2d ago
no it will be reopened when someone is ready to finish it, the person who opened it closed it because they aren't ready to finish it yet but anyone else can reopen it and finish it also you can too if you know how to do it but it's very hard
NSPG911
NSPG911OP•2d ago
oh im not at all interested in continuing it šŸ˜… no clue about android app development in general
owokitty
owokitty•2d ago
if you try arch linux in proot-distro and it says the same message again then let me know where you saw it and what command makes that message, and I can try it on my computer that is also 64 bit only and check if the same thing happens to me or not wait I realized I can install the arch linux termux proot-distro on that computer right now too, I can follow along what you do and see if it happens to me from the exact thing you do, if you want
NSPG911
NSPG911OP•2d ago
pd install archlinux
pd login archlinux
pd install archlinux
pd login archlinux
owokitty
owokitty•2d ago
wow, thanks, I see the same message on my 64-bit only computer it comes from proot-distro itself, https://github.com/termux/proot-distro/blob/8f68053e346ee92219d325fa6d43e92922502a2e/proot-distro.sh#L689 arch linux ARM aarch64 is completely 64-bit I think, so I think it is just a warning and you are unlikely to see any real error from it

Did you find this page helpful?