我有不同的 virtualenv,并且能够指定每个项目使用哪个 virtualenv,我在 Sublime Text 3 中使用了包 Virtualenv (https://packagecontrol.io/packages/Virtualenv)。通过更新,我成为了 Sublime Text 4 的所有者。Virtualenv 包停止工作(它只能与 Sublime Text 3 一起使用)。
我现在用另一种方式管理 Sublime Text 4 中的 virtualenv。我通过
Tools/Build System
使用virtualenv。我直接运行我的脚本,而不像使用 Virtualenv 包一样离开 Sublime。要为现有的 virtualenv 构建新的构建系统,我首先运行 Tools/Build System/New Build System
并在新打开的文件中粘贴:
{
"shell_cmd": "C://python_projects/my_project/env/Scripts/python -u \"$file\"",
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python"
}
此后,我将其以项目名称(此处为
my_project_python
)保存在目录User
中。它创建一个名为 my_project_python.sublime-build
的新文件(由构建系统名称后跟 .sublime_build
组成)。完成此操作后,我转到Tools -> Build System
,我可以看到一个新选项my_project_python
。不同的 virtualenv 的区别仅在于路径 C://python_projects/my_project/env/Scripts/python
和文件名 .sublime-build
。
这很好,但是当我们有大量具有不同 virtualenv 的文件夹时,
Tools -> Build System
中有这么多名称可能会有点令人沮丧。我认为 Virtualenv 包可以更优雅地管理 virtualenv。
所以我想问社区是否有另一个像 Virtualenv 这样的包可以在 Sublime Text 4 中工作?也许有人有办法在 Sublime Text 4 中运行 Virtualenv 包?
ST3有一个Virtualenv包,你可以降级。目前它不适用于 ST4(问题)。 您可以为每个项目指定构建系统:
{
"build_systems":
[
{
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", # highlight line on error
"name": "<proj-name>",
"selector": "source.python",
"shell_cmd": "/path/to/virtualenv/.venv/bin/python -u \"$file\""
},
],
"folders":
[
{
"path": "."
},
],
}
.sublime-project
文件存储在项目的根目录中,请在以下位置指定项目根目录的完整路径: "path": "/path/to/proj"
项目配置的更多选项此处。
如果您找到适合 venvs 的灵活方法,请联系我)
有一个构建系统变量
$folder
,它提供了侧边栏中打开的顶级文件夹的路径。如果您在项目文件中指定工作目录,这将是项目文件夹。
添加项目文件的路径:
{
"folders":
[
{
"name": "ProjectName",
"path": "/path/to/your/project"
}
]
然后创建一个文件
Py3Venv.sublime-build
:
{
"cmd": ["$folder/.venv/bin/python", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python",
"encoding": "utf8",
}
此文件需要放置在 Sublime 包目录的 User 子文件夹中。最简单的查找方法是“首选项 > 浏览包”(macOS、ymmv)。
ProjectManager 插件将项目文件存储在 SublimeText 设置文件夹中,而不是项目文件夹中。如果您尚未使用,值得检查一下。
这个issue提供了一个让它在ST4上运行的解决方案。本质上,您只需将内容为“3.8”(不带引号)的 .python-version 文件直接放入 virtualenv.sublime-package 存档中即可。