Python脚本在非IDLE环境下运行时引发git公共密钥错误

3 投票
1 回答
539 浏览
提问于 2025-04-17 07:14

在64位的Windows 7上,我安装了Python 2.7,没得选择只能用这个版本。

我用IDLE写了一个脚本,当我按F5运行这个脚本时,一切都正常。

不过,如果我在资源管理器里双击这个Python文件,或者用Py2Exe把它变成可执行文件,脚本就出问题了。

出问题的部分是:

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

我一直收到git的错误:

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

正如我所说的,如果我在IDLE里打开这个脚本并从那里运行,它就能正常工作。我对比了两个环境下的os.environ的输出,还有:

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

我没有发现与git特别相关的差异,也没有发现路径方面的不同。我真是搞不懂了!

附注:如果你有一个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

试着在命令提示符(cmd)下运行这个Python脚本,确保命令提示符是以管理员权限打开的。如果这样能成功运行,再试试在文件资源管理器中找到这个脚本,右键点击它,然后选择“以管理员身份运行”。或者,你也可以在python.exe的属性里,找到兼容性选项卡,勾选“以管理员身份运行这个程序”的选项。

撰写回答