繁体   English   中英

使用virtualenv和sublime文本2

[英]Using virtualenv with sublime text 2

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

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

如何使用我的virtualenv获得崇高的文本2?

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

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

您还可以将构建系统的路径设置为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二进制文件。

在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"]
    }
]

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

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

{

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

}

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

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

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

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

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

"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不使用你的构建系统!!

我刚刚在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博客

在MAC OSX下,这对我有用

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

我做的是保持简单:

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

sudo mkdir python

然后去那里创造了virtualenv

virtualenv --no-site-packages virtualenvname

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

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

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

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

我用它来构建我的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

这种组合效果很好: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"]
}

我有一个使用Heroku并使用他们的工头工具的人的答案,它很有效。 只需创建一个新的构建系统,如下所示:

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

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

在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

}

这对我有用:

{
    "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\\"

"Python_env1.sublime-build"

选择

Tools> Build System> Python_env1

完成了!

使用Windows 8.1,st2

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

  1. Sublime> Project>将项目另存为...(如果还没有。这将允许您为项目设置自定义构建选项
  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. 工具>构建

请注意,这是使用Sublime Text 3测试的。

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

您必须编辑您的sublime-project文件并添加以下内容:

"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"]
    }
]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM