-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Use UV as a faster pip implementation #2556
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
base: dev
Are you sure you want to change the base?
Conversation
|
Okay: for some reason this breaks PLT emulation (so unicorn?), breaks it consistently, and only breaks it on py3.10. Why? No idea yet. |
>>> import unicorn
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/.venv/lib/python3.10/site-packages/unicorn/__init__.py", line 4, in <module>
from .unicorn import Uc, ucsubclass, uc_version, uc_arch_supported, version_bind, debug, UcError, __version__
File "/.venv/lib/python3.10/site-packages/unicorn/unicorn.py", line 14, in <module>
from .unicorn_py3 import *
File "/.venv/lib/python3.10/site-packages/unicorn/unicorn_py3/__init__.py", line 1, in <module>
from .unicorn import *
File "/.venv/lib/python3.10/site-packages/unicorn/unicorn_py3/unicorn.py", line 236, in <module>
uclib = __load_uc_lib()
File "/.venv/lib/python3.10/site-packages/unicorn/unicorn_py3/unicorn.py", line 123, in __load_uc_lib
import pkg_resources
ModuleNotFoundError: No module named 'pkg_resources' |
Previous logic required old setuptools on py3.8 up to py3.11. So if new setuptools was installed, importing unicorn always failed with ImportError on these Python versions. It now tries to use old setuptools on py3.8, but falls back gracefully to not using anything. So it works on py3.9+ fully, and on py3.8 it also works but with more limited path discovery (I think it is enough, since no one complained yet). Fixes: 0c34496 ("Modify canonicals import") Ref: unicorn-engine@0c34496 Ref: Gallopsled/pwntools#2556
|
Okay, this is a thing probably on Unicorn's side: unicorn-engine/unicorn#2122 |
|
Huh? // Resolve the seed packages.
let requirements = if interpreter.python_tuple() >= (3, 12) {
vec![Requirement::from(
uv_pep508::Requirement::from_str("pip").unwrap(),
)]
} else {
// Include `setuptools` and `wheel` on Python <3.12.
vec![
Requirement::from(uv_pep508::Requirement::from_str("pip").unwrap()),
Requirement::from(uv_pep508::Requirement::from_str("setuptools").unwrap()),
Requirement::from(uv_pep508::Requirement::from_str("wheel").unwrap()),
]
};It seems venv does seed itself, but not venv-less things. |
|
Blocked: waiting for Unicorn 2.1.4. |
|
Please fix git conflicts. |
f775976 to
4b92fa4
Compare
|
Note setup-uv@v6 brought a usability impairment (astral-sh/setup-uv#381). |
|
Nope, still blocked, waiting for unicorn 2.1.5 (2.1.4 has broken MIPS). |
Some of the |
Closes #2490