Sublime Text 4 中的虚拟环境

问题描述 投票:0回答:3

我有不同的 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 包?

python virtualenv sublimetext3 sublimetext4
3个回答
3
投票

ST3有一个Virtualenv包,你可以降级。目前它不适用于 ST4(问题)。 您可以为每个项目指定构建系统:

  • 创建 sublime 项目或将现有目录添加到 sublime 项目
  • 转到项目 -> 编辑项目
  • 添加此内容并保存在项目的根目录中:
{
    "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 的灵活方法,请联系我)


0
投票

有一个构建系统变量

$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 设置文件夹中,而不是项目文件夹中。如果您尚未使用,值得检查一下。


0
投票

这个issue提供了一个让它在ST4上运行的解决方案。本质上,您只需将内容为“3.8”(不带引号)的 .python-version 文件直接放入 virtualenv.sublime-package 存档中即可。

© www.soinside.com 2019 - 2024. All rights reserved.