pip intenta usar git cuando git no está instalado

Tengo una carpeta de proyecto que es un repository git (tiene una carpeta .git). Cuando uso el command pip freeze , pip intenta usar git. Sin embargo, no tengo instalado git en mi sistema, así que esto causa un error:

 (env) PS C:\Users\eclaird\work\myproject> pip freeze Cannot find command 'git' Storing complete log in C:\Users\eclaird\pip\pip.log (env) PS C:\Users\eclaird\work\myproject> 

pip.log:

 ------------------------------------------------------------ C:\Users\eclaird\work\env\Scripts\pip-script.py run on 01/09/14 11:54:42 Cannot find command 'git' Exception information: Traceback (most recent call last): File "C:\Users\eclaird\work\env\lib\site-packages\pip\basecommand.py", line 134, in main status = self.run(options, args) File "C:\Users\eclaird\work\env\lib\site-packages\pip\commands\freeze.py", line 73, in run req = pip.FrozenRequirement.from_dist(dist, dependency_links, find_tags=find_tags) File "C:\Users\eclaird\work\env\lib\site-packages\pip\__init__.py", line 180, in from_dist req = get_src_requirement(dist, location, find_tags) File "C:\Users\eclaird\work\env\lib\site-packages\pip\vcs\__init__.py", line 249, in get_src_requirement return version_control().get_src_requirement(dist, location, find_tags) File "C:\Users\eclaird\work\env\lib\site-packages\pip\vcs\git.py", line 151, in get_src_requirement repo = self.get_url(location) File "C:\Users\eclaird\work\env\lib\site-packages\pip\vcs\git.py", line 122, in get_url [self.cmd, 'config', 'remote.origin.url'], File "C:\Users\eclaird\work\env\lib\site-packages\pip\vcs\__init__.py", line 110, in cmd command = find_command(self.name) File "C:\Users\eclaird\work\env\lib\site-packages\pip\util.py", line 108, in find_command raise BadCommand('Cannot find command %r' % cmd) BadCommand: Cannot find command 'git' 

¿Hay alguna manera de deshabilitar la integración de git en pip?

(pip 1.4.1, Python 2.7.6)

Lamentablemente no. No hay una opción de configuration para habilitar / deshabilitar los serveres de background.

Detalles, encontrados al profundizar en el código:

El module de Git siempre está registrado: en pip / install .py , el module de git se importa. Al final, se registra y se consultará cada vez que uno de los esquemas declarados en'git.Git' coincida con la url de la dependencia.

 schemes = ('git', 'git+http', 'git+https', 'git+ssh', 'git+git', 'git+file') 

La exception no se maneja. Curiosamente, la congelación anticipa que se puede producir un error al determinar la URL de dependencia que se congelará. Extracto de pip.FrozenRequirement :

 try: req = get_src_requirement(dist, location, find_tags) except InstallationError: logger.warn("Error when trying to get requirement for VCS system %s, falling back to uneditable format" % ex) 

InstallationError henetworkinga de PipError . Desafortunadamente, se genera una exception de tipo'BadCommand', que henetworkinga de'PipError'.

Entonces, aparte de piratear la fuente: nada que puedas hacer. Si necesita que esto funcione, necesita instalar git, hackear la fuente o simular un ejecutable git. Si optas por lo último, para empezar necesitas falsificar'git config remote.origin.url', que se llama (y falla) en pip.vcs.git.Git.get_url .

Espero que ayude, a pesar de que no es un . 😉