Использование virtualenv с возвышенным текстом 2
Я использую возвышенный текст 2 для разработки на Python вместе с virtualenv!
Стандартная возвышенная система сборки текста 2 использует стандартную установку Python, а не мою virtualenv, где установлены мои пакеты.
Как я могу получить возвышенный текст 2 для сборки, используя мой virtualenv?
В настоящее время я использую терминал для активации своей среды и запуска своих сценариев.
ОБНОВЛЕНИЕ: Никогда не заставляло это работать, но видя, как я использую флягу, и она строит, когда вы вносите изменения, это не большая проблема
15 ответов
Обратите внимание, что комментарии об этом решении неверны.
Вы должны отредактировать файл вашего возвышенного проекта и добавить следующее:
"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"]
}
]
Вы также можете установить путь для системы сборки к 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
в примере, чтобы найти правильный двоичный файл python из virtualenv.
В 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, чтобы сделать его немного более переносимым между проектами.
Если ваши виртуальные среды находятся в стандартном месте, создайте новый файл проекта ("Проект" -> "Сохранить проект как") в корневом каталоге вашего проекта чуть выше каталога виртуальной среды. Затем создайте новый файл сборки с чем-то вроде этого:
{
"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 - перейдите в Tools -> Build System -> "Maths". В моем случае мне нужно выбрать "Maths", потому что именно так я и назвал свою систему сборки. Если вы этого не сделаете - Sublime Text не использует вашу систему сборки!!
Я только что получил возвышенный текст 3 для работы в virtualenv. Хотя в ОП указан ST2, там все, скорее всего, больше нравятся мне, которые используют ST3. Благодаря user1248490 и Расселу Битти я пришел к следующему:
{
"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" теперь является "shell_cmd" в ST3. Смотрите блог 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"]
}
Я сохранил это как Новая система сборки (Инструменты -> Система сборки -> Новая система сборки).
Эта комбинация работала отлично: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"]
}
Это сработало для меня:
{
"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
Я использую это для создания своего проекта 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
Источник не работал для меня внутри сборки на 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
}
Предполагая, что вы храните свой файл virtualenv в папке.env на верхнем уровне вашего проекта.
- Sublime> Project> Сохранить проект как... (если вы этого еще не сделали. Это позволит вам установить пользовательские параметры сборки для проекта
Проект> Редактировать проект:
{ "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.
У меня есть ответ для любого, кто использует Heroku и использует их инструмент мастера, и он прекрасно работает. Просто создайте новую систему сборки следующим образом:
{
"cmd": ["foreman", "run", "python", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python"
}
Это включает все переменные среды, доступные Foreman, включая переменную $PATH вашего virtualenv, которая добавляет Python virtualenv в ваш путь к Python.