Вопрос по virtualenv, sublimetext2, python – Использование virtualenv с возвышенным текстом 2

26

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

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

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

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

ОБНОВЛЕНИЕ: Никогда не заставляло это работать, но видя, как я использую флягу и она строит, когда вы вносите изменения, это не большая проблема

Ха-ха ... "оба". Не очень полезно. Molomby
оба, но я планирую использовать OS X больше! Rigobert Song
На какой ОС вы работаете? Matt York

Ваш Ответ

15   ответов
0

эта комбинация работала отлично: 2 шага

1) добавьте 2 соответствующих ключа в «env»; ключ. A) DJANGO_SETTINGS_MODULE Б) ПИТОНПАТ

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"]
}
0

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

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

Это включает все переменные окружения, доступные Форману,including переменная $ PATH virtualenv, которая добавляет Python virtualenv к вашему пути к python.

15

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

@user: Где мне нужно добавить этот файл в ST?
@ user1050619: изst 3 docs: Build systems must be located somewhere under the Packages folder (e.g. Packages/User). Many packages include their own build systems. Папка Packages живет в~/Library/Application Support/Sublime Text 3/ с ST 3 на моем Mac.
Просто дал вам +1, но хочу указать, что & quot; имя & quot; действительно только внутри варианта. Смотрите: [sublime-text-2-docs] [st2] [st2]:sublime-text-unofficial-documentation.readthedocs.org/en/…
1

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

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

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

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

sudo mkdir python

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

virtualenv --no-site-packages virtualenvname

затем создал новую сборку в ST2 с помощью вышеуказанной команды, и она работает

Это прекрасно работает для меня на OSX, спасибо.
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"]
    }
]
Обратите внимание на ответ @ nebffa ниже, который напоминает пользователям о необходимости активировать новую систему сборки, выбрав ее в разделе Инструменты & gt; Сборка системы!
0

Предполагая, что вы храните свой файл virtualenv в папке .env на верхнем уровне вашего проекта.

Sublime > Project > Save project as... (if you haven't already. This will allow you to set custom build options for the project

Project > Edit Project:

{
   "folders":[
       {
           "path": ".",
           "folder_exclude_patterns": [".env"],
       }
   ],
   "build_systems":[
       {
           "name": "Run in VirtualEnv",
           "shell_cmd": "source $project_path/.env/bin/activate && python -u $file"
       }
   ]
}

Tools > Build System > Run in VirtualEnv

Tools > Build

Обратите внимание, что это было проверено с Sublime Text 3.

3

Я использую Flask, но думаю, что это применимо почти ко всем случаям.
Моя настоящая сборка такова, где «benicio» каталог моего проекта:

{
    "cmd": ["source ~/projs/benicio/venv/bin/activate && python ~/projs/benicio/benicio_tests.py"],
    "shell": true
}
я использую. venv/bin/activate; python file.py Спасибо!
3

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

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

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

но вы ДОЛЖНЫ изменить настройку в Sublime Text - перейдите в Инструменты - & gt; Система сборки - & gt; & Quot; Математика & Quot ;. В моем случае мне нужно выбрать «Математика» потому что это то, что я назвал моей системой сборки. Если вы этого не сделаете - Sublime Text не использует вашу систему сборки !!

Это должно быть включено в принятый ответ!
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\"

как

"Python_env1.sublime-build"

Выбрать

Tools> Build System> Python_env1

сделанный!

используя windows 8.1, st2

0

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

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

-4

Note comments about this solution being incorrect.

Вы должны отредактировать свойфайл возвышенного проекта и добавьте следующее:

"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"]
    }
]
не уверен, что это работает, не получая никакого вывода? Rigobert Song
Но я думаю, что если вы удалите первый & quot; cmd & quot; и заменить "python"; во втором «cmd»; по пути к вашему бинарному python в virtualenv он будет работать. IIRC, непосредственно вызывающий питона virtualenv, работает так же, как и активирует virtualenv в первую очередь.
Это не работает, и я не могу понять, как это можно было пометить как правильное. & Quot; источник & quot; Команда является встроенной командой, а не двоичной, поэтому она не найдена в переменной PATH и выполняется с ошибкой «Файл не найден». Вероятно, сочетание PYTHONPATH и evn поможет, но я все еще пытаюсь это сделать.
Изменив первыйcmd с"env": {"PYTHONPATH": "/path/to/your/virtualenv/bin/activate"}, тебе удается что-то получить?
Я сомневаюсь, что это будет работать, словарь с 2 & quot; cmd & quot; записей. Второй «cmd» просто перезапишу первый.
2

Я только что получил превосходный текст 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"
}

Обратите внимание, что & quot; cmd & quot; теперь "shell_cmd" в ST3. УвидетьST3 блог

Это единственное решение, которое работает и для меня, работает ST3 + Ubuntu 13.10, с virtualenvs, спрятанным в моей домашней папке
1

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

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

Я сохранил это как новую систему сборки (Инструменты -> Система сборки -> Новая система сборки).

12

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

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

{

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

}

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

0

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

}

Похожие вопросы