我目前正在为Adblock Plus的源代码为学校 项目,我使用的是自动安装插件可以方便地部署到我的浏览器 然而, Python中提供的构建工具似乎只在我出于某种原因在Git Bash中执行它们时才起作用 。Python脚本抛出WindowsError在Windows命令行,工作在Git中的Bash
以下是错误消息时,我尝试在 Windows命令行执行命令:
C:\Users\Evert\Documents\GitHub\adblockplus>python build.py autoinstall 8888
Traceback (most recent call last):
File "C:\Users\Evert\Documents\GitHub\adblockplus\ensure_dependencies.py", line 380, in <module>
resolve_deps(repo)
File "C:\Users\Evert\Documents\GitHub\adblockplus\ensure_dependencies.py", line 324, in resolve_deps
update_repo(target, vcs, rev)
File "C:\Users\Evert\Documents\GitHub\adblockplus\ensure_dependencies.py", line 272, in update_repo
resolved_revision = repo_types[type].get_revision_id(target, revision)
File "C:\Users\Evert\Documents\GitHub\adblockplus\ensure_dependencies.py", line 106, in get_revision_id
return subprocess.check_output(command, cwd=repo).strip()
File "C:\Python27\lib\subprocess.py", line 212, in check_output
process = Popen(stdout=PIPE, *popenargs, **kwargs)
File "C:\Python27\lib\subprocess.py", line 390, in __init__
errread, errwrite)
File "C:\Python27\lib\subprocess.py", line 640, in _execute_child
startupinfo)
WindowsError: [Error 2] The system cannot find the file specified
Command '['C:\\Python27\\python.exe', 'C:\\Users\\Evert\\Documents\\GitHub\\adblockplus\\ensure_dependencies.py', 'C:\\Users\\Evert\\Documents\\GitHub\\adblockplus']' returned non-zero exit status 1
Failed to ensure dependencies being up-to-date!
Traceback (most recent call last):
File "build.py", line 18, in <module>
buildtools.build.processArgs(BASE_DIR, sys.argv)
File "C:\Users\Evert\Documents\GitHub\adblockplus\buildtools\build.py", line 601, in processArgs
commands[command](baseDir, scriptName, opts, args, type)
File "C:\Users\Evert\Documents\GitHub\adblockplus\buildtools\build.py", line 55, in __call__
return self._handler(baseDir, scriptName, opts, args, type)
File "C:\Users\Evert\Documents\GitHub\adblockplus\buildtools\build.py", line 225, in runAutoInstall
packager.autoInstall(baseDir, type, host, port, multicompartment=multicompartment)
File "C:\Users\Evert\Documents\GitHub\adblockplus\buildtools\packagerGecko.py", line 334, in autoInstall
createBuild(baseDir, type=type, outFile=fileBuffer, multicompartment=multicompartment)
File "C:\Users\Evert\Documents\GitHub\adblockplus\buildtools\packagerGecko.py", line 294, in createBuild
version = getBuildVersion(baseDir, metadata, releaseBuild, buildNum)
File "C:\Users\Evert\Documents\GitHub\adblockplus\buildtools\packager.py", line 58, in getBuildVersion
buildNum = getBuildNum(baseDir)
File "C:\Users\Evert\Documents\GitHub\adblockplus\buildtools\packager.py", line 46, in getBuildNum
result = subprocess.check_output(['git', 'rev-list', 'HEAD'], cwd=baseDir)
File "C:\Python27\lib\subprocess.py", line 212, in check_output
process = Popen(stdout=PIPE, *popenargs, **kwargs)
File "C:\Python27\lib\subprocess.py", line 390, in __init__
errread, errwrite)
File "C:\Python27\lib\subprocess.py", line 640, in _execute_child
startupinfo)
WindowsError: [Error 2] The system cannot find the file specified
这是不是一个巨大的问题,对我来说,因为它不建立,但我不能帮但 想知道:这两个环境之间的区别是什么使得 这个脚本的工作?
我的第一个猜测是它试图执行某些操作(子进程模块是提示),并且在该路径的窗口下不可用。示例/c/windows/notepad.exe vs c:\ windows \ notepad.exe。 – RedX
问题可能出现在“subprocess.check_output(['git','rev-list','HEAD'],cwd = baseDir)” - 检查git是否在系统路径等。我会帮助你更多,但窗户对我来说是黑魔法。 – MacHala
顺便说一句,欢迎来到该网站!查看[tour](https://stackoverflow.com/tour)了解更多关于期望的内容。 – cxw