Allow specifying pip `index-url` via settings when installing Python dependencies
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 74/100
Línea de trabajo
Start in python/scriptingprovider.py at PythonScriptingProvider._install_modules, especially lines 1396-1401, where the isolated pip command is built. Review how the network.httpsProxy setting is handled and how settings are defined, then make the configured python.pip.indexUrl affect dependency installation. Done means plugin dependencies can use the configured index URL without disabling isolated mode.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
What is the feature you'd like to have?
Today, you're unable to specify an --index-url for pip to use when installing Python dependencies for plugins, which means internal mirrors, etc. are unavailable. In environments where direct access to the pypi.org index isn't available, this means that Binary Ninja fails to install Python dependencies of packages.
Rather than disabling --isolated, it'd be nice to be able to specify a global setting (e.g. python.pip.indexUrl) which adds the desired index to the generated pip command line.
Thanks!
Is your feature request related to a problem?
When installing Binary Ninja plugins today, PythonScriptingProvider._install_modules builds a pip command line to install the module in isolated mode:
This means that ~/.pip/pip.conf, etc. configuration settings from the environment are not used by pip - as described above, this means you can't set --index-url in environments where you can't directly hit PyPi
You can kinda hack around this by running something like this to manually install a package into BN's site-packages directory yourself:
uv run python3 -m pip --isolated \
--disable-pip-version-check install --upgrade --upgrade-strategy only-if-needed \
--target "$HOME/Library/Application Support/Binary Ninja/python313/site-packages" \
--index-url "<my_index_url>" \
<package>
Are any alternative solutions acceptable?
A setting like python.pip.indexUrl (used in the same way as network.httpsProxy) is probably the cleanest solution!
Alternatively a pip.conf file could be specified, but this seems like it could get a bit messy if settings other than index-url are configured 🤔
- Lenguaje dominante
- C++
- Estrellas
- 1.3k
- Forks
- 298
- Merge medio
- 5 d 5 h
- PR fusionados (30 d)
- 19
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de Vector35/binaryninja-api
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 88/100
Vector35/binaryninja-api#8540 ·
-
Arch: MSP430
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Vector35/binaryninja-api#8516 · 1 asignado ·
-
Arch: MSP430
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
Vector35/binaryninja-api#8503 · 1 asignado ·
-
normalize time logs from WARP Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
Vector35/binaryninja-api#8446 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
Vector35/binaryninja-api#8444 ·
Todos los issues de Vector35/binaryninja-api
Issues similares
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
AXERA-TECH/ax-llm#77 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
games-on-whales/wolf#509 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
-
bug-unconfirmed
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100