【发布时间】:2012-01-07 23:29:30
【问题描述】:
在windows 7 64bit 上安装了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 和一般路径有关的差异。我被难住了!
PS。如果你安装了 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)
右键单击文件并选择“使用 IDLE 编辑”并按 F5。然后尝试直接双击.py文件......你们会发生什么?
【问题讨论】:
-
git 服务器是否要求你建立 ssh 密钥? (
http://progit.org/book/ch4-3.html) 我不知道为什么 IDLE 可以访问您的id密钥文件,而 explorer 不能,但 id 文件是一个开始查找的地方。 -
@Dave 感谢您的回复。键都整理好了,使用 GitBash 我可以执行这些操作,从 IDLE 运行我的 Python 脚本时也是如此。虽然在 IDLE 下不运行时似乎找不到它的密钥。
-
请查看我对 user1069471 的回复 - 当从 IDLE ~/.ssh 运行时,会检查一个有效的密钥。当不从 IDLE 运行时,在 C:\Program Files (x86)\Git\.ssh 下查找没有密钥的地方
-
我已将问题归结为:
os.environ['HOME']在 IDLE 外部不存在,但在 IDLE 内部存在。
标签: python windows git github python-idle