我使用sublime text 2进行python开发以及virtualenv!
标准的sublime text 2构建系统使用标准的python安装,而不是安装我的软件包的virtualenv。
如何使用我的virtualenv构建崇高的文本2?
我目前使用终端来激活我的环境并运行我的脚本。
更新:从来没有让它工作,但看到我正在使用烧瓶,它在你做出改变时建立,这不是一个大问题
答案 0 :(得分:15)
您还可以将构建系统的路径设置为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二进制文件。
答案 1 :(得分:13)
在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"]
}
]
答案 2 :(得分:12)
Sublime的Build System支持可与Sublime项目文件一起使用的变量,使其在项目中更具可移植性。
如果您的虚拟环境位于标准位置,请在虚拟环境目录上方的项目根目录中创建一个新项目文件(项目 - >将项目另存为)。然后使用以下内容创建一个新的构建文件:
{
"cmd": ["$project_path/venv/bin/python", "-u", "$file"]
}
然后它似乎会自动获取其余部分 - 就像从命令行输入./venv/bin/python一样 - 不需要弄乱路径,环境变量等。
答案 3 :(得分:3)
我正在使用Flask,但我认为它几乎适用于所有情况 我的实际构建是这样的,其中“benicio”是我项目的目录:
{
"cmd": ["source ~/projs/benicio/venv/bin/activate && python ~/projs/benicio/benicio_tests.py"],
"shell": true
}
答案 4 :(得分:3)
很抱歉再添加一个答案 - 但这让我感到非常悲痛。
您不仅需要构建如下的构建系统:
"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不使用你的构建系统!!
答案 5 :(得分:2)
我刚刚在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 blog
答案 6 :(得分:1)
在MAC OSX下,这对我有用
{
"cmd": ["/your/virtualenv/bin/python", "-u", "$file"]
}
我所做的就是保持简单:
去根驱动并创建了python文件夹:
sudo mkdir python
然后去那里创造了virtualenv
virtualenv --no-site-packages virtualenvname
然后使用上面的命令在ST2中创建了一个newbuild,它可以正常工作
答案 7 :(得分:1)
这就是我作为构建系统所拥有的(假设我的virtualenv被创建为一个名为' env'在我当前项目目录中的文件夹)。这至少意味着我不需要不断改变项目之间的构建系统:
{
"cmd": ["env/bin/python", "-u", "$file"]
}
我将其保存为新的构建系统(工具 - >构建系统 - >新构建系统)。
答案 8 :(得分:0)
我用它来构建我的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
答案 9 :(得分:0)
这种组合效果很好: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"]
}
答案 10 :(得分:0)
对于使用Heroku并使用他们的工头工具的任何人,我都有答案,而且效果很好。只需创建一个新的构建系统,如下所示:
{
"cmd": ["foreman", "run", "python", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python"
}
这将引入Foreman可用的所有环境变量,包括你的virtualenv的$ PATH变量,它将virtualenv Python添加到你的python路径。
答案 11 :(得分:0)
这确实有效:
{
"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
}
答案 12 :(得分:0)
这对我有用:
{
"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\"
as
"Python_env1.sublime-build"
选择
Tools> Build System> Python_env1
完成!
使用Windows 8.1,st2
答案 13 :(得分:0)
假设您将项目特定的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进行测试的。
答案 14 :(得分:-4)
请注意有关此解决方案的评论不正确。
您必须修改sublime-project file并添加以下内容:
"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"]
}
]