我正在使用 sublime text 2 和 virtualenv 进行 python 开发!
标准的 sublime text 2 构建系统使用标准的 python 安装而不是我的安装包的 virtualenv。
如何使用我的 virtualenv 构建 sublime text 2?
我目前使用终端来激活我的环境并运行我的脚本。
更新:从来没有让它工作,但看到我正在使用烧瓶并且当你做出改变时它会构建,这不是一个大问题
我正在使用 sublime text 2 和 virtualenv 进行 python 开发!
标准的 sublime text 2 构建系统使用标准的 python 安装而不是我的安装包的 virtualenv。
如何使用我的 virtualenv 构建 sublime text 2?
我目前使用终端来激活我的环境并运行我的脚本。
更新:从来没有让它工作,但看到我正在使用烧瓶并且当你做出改变时它会构建,这不是一个大问题
您还可以将构建系统的路径设置为bin
virtualenv 的目录,如下所示:
"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 的构建系统支持可与 Sublime 项目文件一起使用的变量,以使其在项目之间更具可移植性。
如果您的虚拟环境位于标准位置,请在虚拟环境目录上方的项目根目录中创建一个新项目文件(Project -> Save Project As)。然后创建一个新的构建文件,如下所示:
{
"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"]
}
我所做的是保持简单:
转到根驱动器并创建 python 文件夹:
sudo mkdir python
然后进去并创建了virtualenv
virtualenv --no-site-packages virtualenvname
然后使用上述命令在 ST2 中创建了一个新版本,它可以工作
这就是我作为构建系统所拥有的(假设我的 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 路径中。
source 在 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 文件夹中。
项目 > 编辑项目:
{
"folders":[
{
"path": ".",
"folder_exclude_patterns": [".env"],
}
],
"build_systems":[
{
"name": "Run in VirtualEnv",
"shell_cmd": "source $project_path/.env/bin/activate && python -u $file"
}
]
}
工具 > 构建系统 > 在 VirtualEnv 中运行
请注意,这是使用 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"]
}
]