Python脚本在非IDLE环境下运行时引发git公共密钥错误
在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的属性里,找到兼容性选项卡,勾选“以管理员身份运行这个程序”的选项。