Скрипт Python вызывает ошибку git publickey, когда не запускается в IDLE - PullRequest
3 голосов
/ 28 ноября 2011

На Windows 7 64bit установлен Python 2.7, у меня нет выбора, какую версию использовать.

Я использовал IDLE для написания скрипта, и когда я нажимаю клавишу F5, чтобы запустить скрипт, все работает как положено.

Однако, если я дважды щелкну файл Python из проводника или использую Py2Exe, чтобы превратить его в исполняемый файл, скрипт завершится неудачей.

Это та часть, которая облажается:

print subprocess.check_output(["git", "pull", "origin", "master"], shell=False)

Я получаю сообщение об ошибке:

Permission denied (publickey). 
Fatal: the remote end hung up unexpectedly.

Как я уже сказал, если я открою скрипт в IDLE и запусту оттуда, он заработает шарм. Я сравнил вывод os.environ из обеих сред и вывод:

print subprocess.check_output(["ENV"], shell=False)

Я не вижу различий, касающихся git в частности и путей в целом. Я в тупике!

PS. Если у вас установлены git-репозиторий и python, и у вас есть возможность помочь мне, поместите следующий код в файл в вашем git-репо:

import sys, subprocess
try:
    print "pulling from github"
    print subprocess.check_output(["git", "pull", "origin", "master"], shell=False)
except:
    print "Failed"
    print sys.exc_info()[0]
raw_input("Any key to exit.")
sys.exit(0)

Щелкните правой кнопкой мыши по файлу, выберите «Редактировать с IDLE» и нажмите F5. Затем попробуйте дважды щелкнуть файл .py напрямую ... Что происходит с вами, ребята?

1 Ответ

0 голосов
/ 28 ноября 2011

Попробуйте запустить скрипт python под cmd, убедитесь, что cmd работает с правами администратора. Если это работает, попробуйте запустить его из проводника, щелкнув правой кнопкой мыши -> запустить от имени администратора, или в свойствах python.exe на вкладке «Совместимость» установите флажок «Запускать программу от имени администратора».

...