我正在使用Sublime Text 2进行Python开发,并配合使用virtualenv。
标准的Sublime Text 2构建系统使用标准的Python安装程序,而不是我的虚拟环境,我的包都安装在虚拟环境中。
我该如何让Sublime Text 2使用我的虚拟环境来构建呢?
目前我是用终端激活我的虚拟环境并运行我的脚本。
更新:从未解决,但由于我使用Flask并且它可以在更改后重新构建,所以这不是一个大问题。
我正在使用Sublime Text 2进行Python开发,并配合使用virtualenv。
标准的Sublime Text 2构建系统使用标准的Python安装程序,而不是我的虚拟环境,我的包都安装在虚拟环境中。
我该如何让Sublime Text 2使用我的虚拟环境来构建呢?
目前我是用终端激活我的虚拟环境并运行我的脚本。
更新:从未解决,但由于我使用Flask并且它可以在更改后重新构建,所以这不是一个大问题。
您还可以将构建系统的路径设置为虚拟环境的 bin
目录,如下所示:
您还可以将构建系统的路径设置为虚拟环境的 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
)从虚拟环境中找到正确的Python二进制文件。
~/Library/Application Support/Sublime Text 3/
中与ST 3一起存在。 - user1248490"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一样 - 无需繁琐地处理路径、环境变量等。
"build_systems":
[
{
"name": "Maths",
"env": {"PYTHONPATH":"/home/nebffa/Desktop"},
"path":"$project_path/bin",
"cmd": ["$project_path/bin/python3.3", "-u", "$file"]
}
]
但你必须更改Sublime Text中的一个设置 - 转到工具 --> 构建系统 -->“Maths”。在我的情况下,我需要选择“Maths”,因为那是我命名的构建系统。如果您不这样做 - Sublime Text将不使用您的构建系统!
我正在使用Flask,但我认为它适用于几乎所有情况。
我的实际构建如下,其中“benicio”是我的项目目录:
{
"cmd": ["source ~/projs/benicio/venv/bin/activate && python ~/projs/benicio/benicio_tests.py"],
"shell": true
}
. venv/bin/activate; python file.py
。谢谢! - Steve Peak我刚刚在虚拟环境中成功地使用了Sublime Text 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": ["env/bin/python", "-u", "$file"]
}
我将其保存为一个新的构建系统(工具 -> 构建系统 -> 新建构建系统)。
{
"cmd": ["/your/virtualenv/bin/python", "-u", "$file"]
}
sudo mkdir python
virtualenv --no-site-packages virtualenvname
然后使用上述命令在ST2中创建了一个新的构建,它可以正常工作。
这个对我有用:
{
"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"
选择
工具>构建系统>Python_env1
完成!
使用Windows 8.1,ST2
我使用这个来构建我的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