使用virtualenv和sublime文本2

时间:2012-08-15 07:47:29

标签: python virtualenv sublimetext2

我使用sublime text 2进行python开发以及virtualenv!

标准的sublime text 2构建系统使用标准的python安装,而不是安装我的软件包的virtualenv。

如何使用我的virtualenv构建崇高的文本2?

我目前使用终端来激活我的环境并运行我的脚本。

更新:从来没有让它工作,但看到我正在使用烧瓶,它在你做出改变时建立,这不是一个大问题

15 个答案:

答案 0 :(得分:15)

您还可以将构建系统的路径设置为virtualenv的bin目录,如下所示:

"build_systems":
[
    {
        "selector": "source.python",
        "env": {"PYTHONPATH":"/Users/user/project"},
        "path":"/Users/user/work/myvirtualenv/bin:$PATH",
        "name": "Run virtualenv python",
        "cmd": ["python", "-u", "$file"],
        "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",

        "variants": [
            {   "name": "Run all Tests",
                "working_dir": "/Users/user/project",
                "cmd": ["nosetests"]
            } 
        ]
    }
]

这也允许其他工具(例如示例中的nose)从virtualenv中找到正确的python二进制文件。

答案 1 :(得分:13)

在Windows中,这对我有用:

"build_systems":
[
    {
    "name": "Run Tests",
    "working_dir": "/path/to/to/your/django_project",
    "cmd": ["/path/to/your/virtualenv/bin/python.exe", "manage.py", "test"]
    }
]

答案 2 :(得分:12)

Sublime的Build System支持可与Sublime项目文件一起使用的变量,使其在项目中更具可移植性。

如果您的虚拟环境位于标准位置,请在虚拟环境目录上方的项目根目录中创建一个新项目文件(项目 - >将项目另存为)。然后使用以下内容创建一个新的构建文件:

{

    "cmd": ["$project_path/venv/bin/python", "-u", "$file"]

}

然后它似乎会自动获取其余部分 - 就像从命令行输入./venv/bin/python一样 - 不需要弄乱路径,环境变量等。

答案 3 :(得分:3)

我正在使用Flask,但我认为它几乎适用于所有情况 我的实际构建是这样的,其中“benicio”是我项目的目录:

{
    "cmd": ["source ~/projs/benicio/venv/bin/activate && python ~/projs/benicio/benicio_tests.py"],
    "shell": true
}

答案 4 :(得分:3)

很抱歉再添加一个答案 - 但这让我感到非常悲痛。

您不仅需要构建如下的构建系统:

"build_systems":
[
{
    "name": "Maths",
    "env": {"PYTHONPATH":"/home/nebffa/Desktop"},
    "path":"$project_path/bin",
    "cmd": ["$project_path/bin/python3.3", "-u", "$file"]
}
]

但您必须更改Sublime Text中的设置 - 转到工具 - >构建系统 - > “数学”。在我的情况下,我需要选择“数学”,因为这就是我命名我的构建系统。如果你不这样做 - Sublime Text不使用你的构建系统!!

答案 5 :(得分:2)

我刚刚在virtualenv中使用了崇高的文字3。尽管OP指定了ST2,但我可能更喜欢使用ST3。感谢user1248490和Russell Beattie,我得到了以下内容:

{
    "shell_cmd": "$project_path/vi_sys_pkgs/bin/python3 -u \"$file\"",
    "path": "$project_path/vi_sys_pkgs/bin",
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python"
}

请注意,“cmd”现在是ST3中的“shell_cmd”。见ST3 blog

答案 6 :(得分:1)

在MAC OSX下,这对我有用

{
"cmd": ["/your/virtualenv/bin/python", "-u", "$file"]
}

我所做的就是保持简单:

去根驱动并创建了python文件夹:

sudo mkdir python

然后去那里创造了virtualenv

virtualenv --no-site-packages virtualenvname

然后使用上面的命令在ST2中创建了一个newbuild,它可以正常工作

答案 7 :(得分:1)

这就是我作为构建系统所拥有的(假设我的virtualenv被创建为一个名为' env'在我当前项目目录中的文件夹)。这至少意味着我不需要不断改变项目之间的构建系统:

{
   "cmd": ["env/bin/python", "-u", "$file"]
}

我将其保存为新的构建系统(工具 - >构建系统 - >新构建系统)。

答案 8 :(得分:0)

我用它来构建我的Flask项目。我已将以下代码添加到我的项目设置:项目 - >编辑项目

{
     "folders":
     [
          {
               "path": "/C/MyDev/chilinzb/"
          }
     ],
     "build_systems":
    [
        {
            "name": "Flask",
            // activate the specific virtualenv for the project
            "cmd": ["C:/MyDev/virtualenvs/env_chilinzb/Scripts/python", "$file"]
        }
    ]
}

然后我切换到我的run.py文件并点击Ctrl+B

答案 9 :(得分:0)

这种组合效果很好:2个步骤

1)将2个适当的键添加到'env'键。 A)DJANGO_SETTINGS_MODULE B)PYTHONPATH

2)更新cmd以反映您要使用的python版本。

{

"env":{"DJANGO_SETTINGS_MODULE":"my_project.settings",
    "PYTHONPATH":"d:\\Projects\\virts\\my_project\\Scripts;d:\\Projects\\virts\\my_project\\Lib;d:\\Projects\\virts\\my_project\\Lib\\site-packages;D:\\Projects\\my_project"
    },
"cmd": ["c:/Python27/python.exe","$file"]
}

答案 10 :(得分:0)

对于使用Heroku并使用他们的工头工具的任何人,我都有答案,而且效果很好。只需创建一个新的构建系统,如下所示:

{
    "cmd": ["foreman", "run", "python", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python"
}

这将引入Foreman可用的所有环境变量,包括你的virtualenv的$ PATH变量,它将virtualenv Python添加到你的python路径。

答案 11 :(得分:0)

在lubuntu的构建中,源代码对我不起作用。 使用 '。'或点而不是'来源'。

这确实有效:

{

    "env": {
    "DJANGO_SETTINGS_MODULE":"django_project_name.settings",
    "PYTHONPATH":"/home/my_username/current/django_project_name:/home/my_username/.virtualenvs/django_project_name/lib/python2.7:/home/my_username/.virtualenvs/django_project_name/lib/python2.7/site-packages/"
},
"working_dir":"$project_path",
"cmd":[". /home/my_username/.virtualenvs/django_project_name/bin/activate && python $file"],
"shell":true

}

答案 12 :(得分:0)

这对我有用:

{
    "cmd": ["C:/Users/user/virtualenvs/env1/Scripts/python.exe", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python"
}

保存了内置版本:

"C:\Users\user\AppData\Roaming\Sublime Text 2\Packages\User\"

as

"Python_env1.sublime-build"

选择

Tools> Build System> Python_env1

完成!

使用Windows 8.1,st2

答案 13 :(得分:0)

假设您将项目特定的virtualenv保存在项目顶层的.env文件夹中。

  1. 崇高>项目>将项目保存为...(如果您还没有。这将允许您为项目设置自定义构建选项
  2. 项目>编辑项目:

    {
       "folders":[
           {
               "path": ".",
               "folder_exclude_patterns": [".env"],
           }
       ],
       "build_systems":[
           {
               "name": "Run in VirtualEnv",
               "shell_cmd": "source $project_path/.env/bin/activate && python -u $file"
           }
       ]
    }
    
  3. 工具>构建系统>在VirtualEnv中运行

  4. 工具>构建
  5. 请注意,这是使用Sublime Text 3进行测试的。

答案 14 :(得分:-4)

请注意有关此解决方案的评论不正确。

您必须修改sublime-project file并添加以下内容:

"build_systems":
[
    {
    "name": "Run Tests",
    "cmd": ["source", "/path/to/your/virtualenv/bin/activate"],
    "working_dir": "/path/to/to/you/django_project",
    "cmd": ["python", "manage.py", "test"]
    }
]