Python 将virtualenv与sublime text 2配合使用
我正在使用sublime text 2与virtualenv一起进行python开发 标准的sublime text 2构建系统使用标准python安装,而不是安装软件包的my virtualenv 如何使用我的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":
更新:从未让它工作过,但鉴于我正在使用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"
}
]
}
请注意,这是用升华文本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