Sublime 3路径变量

时间:2018-06-21 14:01:35

标签: python-3.x path installation windows-10 sublimetext3

我正在尝试为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"
}

我不确定是否正确设置了路径或是否正确设置了构建环境。 (也许两者都有)

1 个答案:

答案 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才能看到更改。