Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将virtualenv与sublime text 2配合使用_Python_Virtualenv_Sublimetext2 - Fatal编程技术网

Python 将virtualenv与sublime text 2配合使用

Python 将virtualenv与sublime text 2配合使用,python,virtualenv,sublimetext2,Python,Virtualenv,Sublimetext2,我正在使用sublime text 2与virtualenv一起进行python开发 标准的sublime text 2构建系统使用标准python安装,而不是安装软件包的my virtualenv 如何使用我的virtualenv构建sublime text 2 我目前使用终端激活我的环境并运行我的脚本 更新:从未让它工作过,但鉴于我正在使用flask,并且在您进行更改时它会生成,这不是一个大问题。请注意有关此解决方案的评论不正确。 您必须编辑并添加以下内容: "build_systems":

我正在使用sublime text 2与virtualenv一起进行python开发

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

如何使用我的virtualenv构建sublime text 2

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


更新:从未让它工作过,但鉴于我正在使用flask,并且在您进行更改时它会生成,这不是一个大问题。

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

您必须编辑并添加以下内容:

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

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

我用它来构建我的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_设置_模块 B) 蟒蛇

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

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

Sublime的构建系统支持变量,这些变量可以与Sublime项目文件一起使用,使其在项目之间更具可移植性

如果虚拟环境位于标准位置,请在虚拟环境目录正上方的项目根目录中创建一个新项目文件(project->Save project As)。然后创建一个新的生成文件,如下所示:

{

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

}

然后,它似乎会自动拾取其余部分-就像您在命令行中键入/venv/bin/python一样-无需处理路径、环境变量等。

在MAC OSX下,这对我很有用

{
"cmd": ["/your/virtualenv/bin/python", "-u", "$file"]
}
我所做的是保持简单:

转到根驱动器并创建了python文件夹:

sudo mkdir python
然后进入那里,创造了虚拟电视

virtualenv --no-site-packages virtualenvname

然后用上面的命令在ST2中创建了一个新的构建,它工作了

对于任何使用Heroku和foreman工具的人,我有一个答案,它工作得很好。只需创建一个新的构建系统,如下所示:

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

这将引入Foreman可用的所有环境变量,包括virtualenv的$PATH变量,该变量将virtualenv Python添加到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中的设置-转到工具-->构建系统-->数学。在我的例子中,我需要选择“数学”,因为这就是我命名的构建系统。如果你不这样做-升华文本不会使用你的构建系统

我刚刚得到了在虚拟电视中工作的精彩文本3。虽然OP指定了ST2,但很可能有更多像我这样的人在使用ST3。感谢user1248490和Russell Beattie,我达成了以下目标:

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

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

源代码在lubuntu的构建中对我不起作用。 使用“.”或点代替“源”

这确实奏效了:

{

}这对我很有效:

{
    "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>buildsystem>Python\u env1

完成了


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

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

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

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

  • 升华>项目>将项目另存为。。。(如果您还没有。这将允许您为项目设置自定义生成选项。)
  • 项目>编辑项目:

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

  • 工具>构建

  • 请注意,这是用升华文本3测试的。

    两者,但我计划更多地使用OS X!哈哈…“两者”。没有太大帮助。我怀疑它会起作用,一个包含2个“cmd”条目的字典。第二个“cmd”将简单地覆盖第一个。但我认为如果删除第一个“cmd”并在第二个“cmd”中替换“python”通过指向virtualenv的python二进制文件的路径,它将工作。IIRC,直接调用virtualenv的python与首先激活virtualenv一样工作。通过使用
    “env:{“PYTHONPATH”:/path/to/your/virtualenv/bin/activate更改第一个
    cmd
    您是否设法获取了一些信息?这不起作用,我无法理解如何将其标记为正确。“source”命令是一个内置命令,而不是二进制命令,因此在路径中找不到它,因此它会以“File not found error”执行。可能PYTHONPATH和evn的混合会有所帮助,但我仍在尝试。我使用
    .venv/bin/activate;python file.py
    谢谢!刚刚给了你+1,但我想指出,“name”仅在变量中有效。请参阅:[sublime-text-2-docs][st2]:@user:我需要在ST@user1050619:中的何处添加此文件?@user1050619:来自:生成系统必须位于Packages文件夹下的某个位置(例如Packages/user)。许多软件包都包含自己的构建系统。软件包文件夹位于Mac上ST 3的
    ~/Library/Application Support/Sublime Text 3/
    中。这是唯一一个对我也有效的解决方案,运行ST