пытается выполнить команду git, используя скрипт python - PullRequest
5 голосов
/ 19 марта 2012

Я пытаюсь выполнить простую команду git, используя следующий скрипт на python.

#!/usr/bin/python

import commands
import subprocess
import os
import sys

pr = subprocess.Popen( "/usr/bin/git log" , cwd = os.path.dirname( '/ext/home/rakesh.kumar/workspace/myproject' ), shell = True, stdout = subprocess.PIPE, stderr = subprocess.PIPE )
(out, error) = pr.communicate()


print "Error : " + str(error) 
print "out : " + str(out)

но я получаю следующую ошибку, хотя я запускаю скрипт python в той же директории, где находится git reposetory.

Error : fatal: Not a git repository (or any of the parent directories): .git

Я подозревал, что git может быть исправлен, но файлы git хороши, и команды git работают, если я выполняю в обычной командной строке.

Я пытался искать в сети, но не смог получить полезную информацию. Пожалуйста, помогите это будет с благодарностью.

Ответы [ 2 ]

5 голосов
/ 19 марта 2012

Проблема в том, что вы используете os.path.dirname():

os.path.dirname( '/ext/home/rakesh.kumar/workspace/myproject' )

даст вам:

>>> os.path.dirname( '/ext/home/rakesh.kumar/workspace/myproject' )
'/ext/home/rakesh.kumar/workspace'

, что, я уверен, не то, что вы хотите.

4 голосов
/ 19 марта 2012

Попробуйте это:

#!/usr/bin/python

import commands
import subprocess
import os
import sys

pr = subprocess.Popen( "/usr/bin/git log" , cwd = os.path.dirname( '/ext/home/rakesh.kumar/workspace/myproject/' ), shell = True, stdout = subprocess.PIPE, stderr = subprocess.PIPE )
(out, error) = pr.communicate()


print "Error : " + str(error) 
print "out : " + str(out)

Путь к каталогу должен иметь '/' в конце.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...