我正在尝试为Windows 10 pc上的sublime text 3设置python 3构建路径。系统说它找不到指定的文件,但是我已经添加了路径并为python3设置了构建系统。我尝试构建时收到的错误消息如下。
[WinError 2] The system cannot find the file specified
[cmd: ['python3', '-i', '-u', 'C:\\Users\\strinkjr\\Desktop\\Python Stuff\\errorSearch.py']]
[dir: C:\Users\strinkjr\Desktop\Python Stuff]
[path: C:\Users\strinkjr\Desktop\Python Stuff\]
[Finished]
我的构建环境文件如下:
{
"cmd": ["python3", "-i", "-u", "$file"],
"file_regex": "^[ ]File \"C:/Users/strinkjr/AppData/Local/Programs/Python/Python36/python.exe\", line ([0-9]*)",
"selector": "source.python"
}
我不确定是否正确设置了路径或是否正确设置了构建环境。 (也许两者都有)
答案 0 :(得分:1)
在这里,您遇到了一些总体问题。
首先是您没有正确设置PATH
。构建输出向您显示PATH
,它是命令执行相关的当前定义:
[path: C:\Users\strinkjr\Desktop\Python Stuff\]
PATH
是Windows将在其中查找您要尝试执行的程序的位置的列表,因此,除非此目录中没有python3.exe
,否则您会不小心设置{{ 1}}移至您正在运行的文件的位置,而不是用于运行它们的解释器的位置。
第二,您将PATH
传递给Python解释器,以使其在执行完脚本后立即进入交互模式。 Sublime不允许您与在-i
中执行的程序进行交互,因此,如果您在程序完成执行并进入交互模式后执行此操作,它将被挂起,等待您提供输入您无法提供的。
您的构建系统还包含以下sublime-build
条目:
file_regex
在"file_regex": "^[ ]File \"C:/Users/strinkjr/AppData/Local/Programs/Python/Python36/python.exe\", line ([0-9]*)",
文件中,sublime-build
用于检测程序输出中哪些行是错误,因此Sublime可以让您在错误之间进行导航,或者在发生错误时用内联错误进行标记您已启用该选项。
尽管这不会阻止程序运行,但会 阻止Sublime识别错误,因为文件名永远不会匹配。
我会尝试使用类似以下内容的file_regex
文件,看看是否对您更好:
sublime-build
这删除了{
"shell_cmd": "python3 -u \"$file\"",
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python",
"env": {
"PYTHONIOENCODING": "utf-8",
"PATH": "$PATH;C:/Users/strinkjr/AppData/Local/Programs/Python/Python36/"
},
}
参数以阻止解释器进行交互以停止任何问题,并使用-i
而不是shell_cmd
来提供命令,该命令会稍微改变格式。
这里的cmd
是可以匹配常规python错误的代码,与您已经提供的错误类似,但是没有引用Python可执行文件。
这里最大的增加是几个环境变量。第一个确保Python知道应该使用file_regex
来生成输出,因为Sublime控制台希望它使用它。如果您尝试显示非ascii输出,则可以避免潜在的错误。
这还将应用一个新的PATH,该路径包括现有路径,并根据已使用的文件向其添加看起来像是安装Python的路径。
如果位置不正确,则可能需要调整该零件;或者,您可以删除utf-8
的{{1}}部分,并相应地修改PATH
环境变量。请注意,如果这样做,可能需要重新启动Sublime才能看到更改。