Подтвердить что ты не робот

Использование virtualenv с возвышенным текстом 2

Я использую возвышенный текст 2 для разработки python вместе с virtualenv!

Стандартная система построения возвышенного текста 2 использует стандартную установку python, а не мой virtualenv, где установлены мои пакеты.

Как я могу получить возвышенный текст 2 для сборки с помощью моего virtualenv?

В настоящее время я использую терминал для активации моей среды и запуска моих сценариев.

UPDATE: никогда не работало, но, видя, как я использую флягу, и она строит, когда вы делаете изменения, это не большая проблема.

4b9b3361

Ответ 1

Обратите внимание на то, что это неправильное решение.

Вам нужно отредактировать файл 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"]
    }
]

Ответ 2

Вы также можете установить путь для системы сборки в каталог 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 из virtualenv.

Ответ 3

В окнах это работает для меня:

"build_systems":
[
    {
    "name": "Run Tests",
    "working_dir": "/path/to/to/your/django_project",
    "cmd": ["/path/to/your/virtualenv/bin/python.exe", "manage.py", "test"]
    }
]

Ответ 4

Sublime Build System поддерживает переменные, которые могут использоваться с файлами проекта Sublime, чтобы сделать их более переносимыми для разных проектов.

Если ваши виртуальные среды находятся в стандартном месте, создайте новый файл проекта (Project → Save Project As) в корневой каталог вашего проекта чуть выше вашего каталога виртуальной среды. Затем создайте новый файл сборки с чем-то вроде этого:

{

    "cmd": ["$project_path/venv/bin/python", "-u", "$file"]

}

Кажется, что тогда автоматически забрать все остальное - так же, как если бы вы ввели. /venv/bin/python из командной строки - не нужно путаться с путями, переменными среды и т.д.

Ответ 5

Я использую Flask, но я думаю, что это применимо почти к каждому случаю.
Моя фактическая сборка похожа на это, где "benicio" - это каталог моего проекта:

{
    "cmd": ["source ~/projs/benicio/venv/bin/activate && python ~/projs/benicio/benicio_tests.py"],
    "shell": true
}

Ответ 6

Извините, что добавила еще один ответ на этот вопрос, но это вызвало у меня большое количество горя, которые это выяснили.

Вам нужно не только создать систему сборки, например:

"build_systems":
[
{
    "name": "Maths",
    "env": {"PYTHONPATH":"/home/nebffa/Desktop"},
    "path":"$project_path/bin",
    "cmd": ["$project_path/bin/python3.3", "-u", "$file"]
}
]

но вы должны изменить настройку в Sublime Text - перейдите в Инструменты → Система сборки → "Математика". В моем случае мне нужно выбрать "Maths", потому что это то, что я назвал своей системой сборки. Если вы этого не сделаете - Sublime Text не использует вашу систему сборки!

Ответ 7

У меня только что возвышенный текст 3 работает в virtualenv. Хотя ОП указывает ST2, все это скорее похоже на меня, кто использует ST3. Благодаря пользователю1248490 и Расселу Битти я пришел к следующему:

{
    "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

Ответ 8

В MAC OSX это работает для меня

{
"cmd": ["/your/virtualenv/bin/python", "-u", "$file"]
}

Что я сделал, так это просто:

Пришел к корневому диску и создал папку python:

sudo mkdir python

затем вошел туда и создал virtualenv

virtualenv --no-site-packages virtualenvname

затем создал новую конструкцию в ST2 с указанной командой и работает

Ответ 9

Это то, что у меня есть как система сборки (при условии, что мой virtualenv создается как папка с именем env в моем текущем каталоге проекта). Это по крайней мере означает, что мне не нужно постоянно менять систему сборки между проектами:

{
   "cmd": ["env/bin/python", "-u", "$file"]
}

Я сохранил это как новую систему сборки (Tools → Build System → New Build System).

Ответ 10

Я использую это для создания моего проекта Flask. Я добавил следующий код в мои настройки проекта: Project → Edit Project

{
     "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

Ответ 11

эта комбинация отлично поработала: 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"]
}

Ответ 12

У меня есть ответ для тех, кто использует Heroku и использует их инструмент для бригадиров, и он отлично работает. Просто создайте новую систему сборки следующим образом:

{
    "cmd": ["foreman", "run", "python", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python"
}

Это приводит к использованию всех переменных среды, доступных Foreman, включая переменную virtualenv $PATH, которая добавляет виртуальный Python к вашему пути python.

Ответ 13

источник не работал у меня внутри сборки на 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

}

Ответ 14

это сработало для меня:

{
    "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

сделано!

с использованием окон 8.1, st2

Ответ 15

Предполагая, что ваш виртуальный файл, зависящий от проекта, находится в папке .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.