Tengo líneas en mi salida de congelación de pip como:
-e [email protected]:widgets.git@3bdaf7d07c44a87c38beb1e8abd163a7edf99adc#egg=widgets
-e [email protected]:[email protected]#egg=gadgets
Cuando llega el momento de instalar usando pip install -r requirements.txt
, parece que pip identifica incorrectamente example.com:[email protected]
como la URL completa del repositorio de git cuando de hecho debería ser example.com:gadgets.git
y entonces debería echa un vistazo a la confirmación 3bda ... 99adc.
Si trato de instalar usando la salida de pip freeze, p. Ej.
pip install -e [email protected]:[email protected]#egg=gadgets
Me sale el mismo error.
Todo esto está usando pip 1.5.4
Tenga en cuenta que con los siguientes cambios funciona correctamente:
pip install -e [email protected]:/path/to/project/[email protected]#egg=project
o
pip install -e [email protected]:project.git#egg=project
Aunque en este último, obviamente solo extraerá la confirmación actual y no la especificada en 3bdaf ...
Además, por razones que no entiendo, _funciona_ para solicitudes a github.
Es decir,
pip install -e [email protected]:JordanReiter/[email protected]#egg=github_project
obras.
Esto es similar al # 6293. El analizador (basado en stdlib urlsplit
tiene problemas para identificar la parte de la ruta de la URL cuando no contiene /
en absoluto, e identifica todo después de +
como netloc
. La variante sin rev funciona totalmente por accidente porque netloc
y path
se unen más tarde y se pasan a Git (que hace lo correcto automáticamente).
Las discusiones en # 6293 parecen favorecer la eliminación total del soporte de URL de estilo SCP, por lo que la mejor solución aquí sería antes pip freeze
escupir git+ssh://
URL en su lugar.
Cerrando como proponemos eliminar el formulario git+git@
en # 7554.