Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python脚本在未在空闲状态下运行时导致git publickey错误_Python_Windows_Git_Github_Python Idle - Fatal编程技术网

Python脚本在未在空闲状态下运行时导致git publickey错误

Python脚本在未在空闲状态下运行时导致git publickey错误,python,windows,git,github,python-idle,Python,Windows,Git,Github,Python Idle,在安装了Python2.7的Windows7上,我没有选择使用哪个版本 我使用IDLE编写脚本,当我按F5运行脚本时,一切都按预期工作 但是,如果我在资源管理器中双击Python文件或使用Py2Exe将其转换为可执行文件,脚本将失败 这是拧紧的部分: print subprocess.check_output(["git", "pull", "origin", "master"], shell=False) 我一直收到git错误: Permission denied (publickey).

在安装了Python2.7的Windows7上,我没有选择使用哪个版本

我使用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.
正如我所说,如果我在空闲状态下打开脚本并从那里开始运行,它会产生一种魅力。我比较了这两种环境中的
os.environ
输出和以下输出:

print subprocess.check_output(["ENV"], shell=False)
我看不出git在具体方面和路径方面有什么区别。我被难住了

另外,如果您安装了git repo和python,并有时间帮助我,请将以下代码放入git repo中的文件中:

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)

右键单击文件并选择“使用空闲编辑”,然后按F5。然后尝试直接双击.py文件。。。你们怎么办?

试着在cmd下运行python脚本, 确保cmd以管理员权限运行。 如果可行,请尝试在资源管理器中使用鼠标右键单击->以管理员身份运行,
或者在兼容性选项卡的python.exe属性中,标记“以管理员身份运行此程序”复选框。

git服务器是否要求您建立ssh密钥?(
http://progit.org/book/ch4-3.html
)我不知道为什么IDLE可以访问您的
id
密钥文件,而explorer不能,但id文件是开始查找的地方。@Dave谢谢您的回复。这些键都被整理好了,使用GitBash,我可以执行这些操作,也可以在空闲状态下运行Python脚本。虽然看起来不是在IDLE下运行时,Git找不到它的密钥。请参阅我对user1069471的回复-当从IDLE运行时~/.ssh被检查是否有有效的密钥。当不是从空闲运行时,git会在C:\Program Files(x86)\git\.ssh下查找,其中没有密钥。我已经找到了问题的根源:
os.environ['HOME']
不存在于空闲外部,但存在于空闲内部。仍然没有运气,像此git一样运行会提示我接受主机指纹,这意味着它是以其他用户的身份运行的,并且无论如何也找不到密钥。很抱歉,我发布了示例代码,但它在此处无法工作,编辑了主要注释。我发现了问题。当通过IDLE git运行时,会检查我的home directory.ssh是否有私钥。在其他模式下运行时,它会在C:\Program Files(x86)\Git\.ssh下查找,当然,那里没有存储密钥!有人知道为什么吗?