JawsIk
@JawsIk
Python (Django), Lua, ЧПУ-станки(ArtCam, Aspire)

Как в Sublime Text 3 сделать любое автодополнение кода с виртуальным окружением?

Перед началом хочу дать понять, что я использую PyCharm, но у меня есть оборудование очень старое 10-ти летней давности ноут, который его не тянет. Поэтому я хочу сделать микро-IDE python на основе Sublime Text 3 (потому что он быстрый и своими установленными модулями не гадит в виртуальном окружении проекта). Далее к сути:

Устанавливаю Sublime Text 3.
Ставлю Package Control и устанавливаю нужные модули.
Я привык, что virtual enveroment у меня лежит в папке v (а рядом уже сами файлы проекта). Мой установленный SublimeREPL настроен так, чтобы он запускался используя как раз моё виртуальное окружение. И он прекрасно работает.
Ставлю Анаконду (чтобы были автоформатинг кода (при сохранении файла), линтер и хотелось бы автодополнение кода (ну то, которое появляется подсказками через точку))
И вот автодополнение с модулями из стандартной библиотеки прекрасно работает. А с теми, которые установил я в своё виртуальное окружение, увы нет. Вот как это исправить?
Пробовал ставить Jedi. Всё ровно тоже самое.
Где в настройках пакета Anaconda указать, чтобы он использовал моё виртуальное окружение?
Например в том же SublimeREPL я просто сделал в Key Binding вот так и работает:
{ 
        "keys": ["ctrl+b"], 
        "command": "repl_open", 
        "args": {
                "cmd": ["$folder/v/Scripts/python.exe", "-i", "-u", "$file_basename"], 
                "cwd": "$file_path", 
                "encoding": "utf8", 
                "extend_env": {"PYTHONIOENCODING": "utf-8"},
                "view_id": "*REPL* [python]",
                "external_id": "python", 
                "syntax": "Packages/Python/Python.tmLanguage", 
                "type": "subprocess"
        }
    },


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

В Jedi есть такие настройки (где я пробовал разные варианты, но он так и не видит модули из моего виртуального окружения):
{
	// You can set a path to your python virtualenv,
    // for example `/home/user/.virtualenvs/myenv)`.
    // Note: Interpreter path would be found automaticaly

    // "python_virtualenv": "./v",
    // "python_virtualenv": "./v/",
    // "python_virtualenv": "v/",
    // "python_virtualenv": "/v",
    "python_virtualenv": "e:/py/testbot/v",


    // You can set a path to your python interpreter,
    // for example `/home/user/.virtualenvs/myenv/bin/python)`.

    // "python_interpreter": "./v/Scripts/python",
    // "python_interpreter": "v/Scripts/python",
    // "python_interpreter": "./v/Scripts/python.exe",
    "python_interpreter": "e:/py/testbot/v/Scripts/python",

    // "sublime_completions_visibility": "all",
}


Как настроить, чтобы автодополение кода из Anaconda или Jedi (или может какое другое) понимало, что надо работать с виртуальным окружением из папки v/ (шут с ним, я переименую в другое имя папки, лишь бы работало)?

p.s. может надо какой-нить файл создать (ну по типу .gitignore) в котором будут прописаны правила для всего проекта сублима, и чтобы этим правилам подчинялась Anaconda или Jedi? Если знаете, подскажите.
  • Вопрос задан
  • 80 просмотров
Решения вопроса 1
Amunrah
@Amunrah
Сказочный персонаж ))
Хз кто как делает, а я добавил пару строк в Sublime_text\Data\Packages\Jedi - Python autocompletion\sublime_jedi\utils.py:

5efa61cb80ef4840755280.png
Кстати надо перезапустить после изменений
А в файле проекта пишу примерно следующее:

{
  "virtualenv": "$folder/.Venv",
  "settings": 
  {
    "python_interpreter": "$folder/.Venv/Scripts/python.exe"
  },
	"folders":
	[
		{
			"path": "Path/To/My/Project"
		}
	]
}

Соответственно папка с виртуальным окружением у меня называется .Venv и располагается в корне проекта
И все работает :)

ПыСы: Но по идее можно тупо прописать путь в файле проекта - типа "virtualenv": "path/to/venv", у меня просто sublime на флэшке и приходится везде использовать относительные пути
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
OnederX Москва
от 100 000 до 120 000 ₽
iCode Москва
от 90 000 до 200 000 ₽
SwapZilla.co Москва
от 200 000 ₽