Как запустить Spyder в виртуальной среде?

99

Я использовал Spyder, установленный с дистрибутивом Anaconda, который по умолчанию использует Python 2.7. В настоящее время мне нужно настроить виртуальную среду разработки с Python 3.4.

Два основных предложения после исследования в Интернете:

  1. сначала настроить виртуальную среду и указать изменение настроек Spyder, например здесь ;
  2. для установки всех зависимостей Spyder, таких как PyQt4, в самой виртуальной среде, например здесь ;

Обе рекомендации громоздки и не выглядят разумными вариантами для развития.

Есть ли решение, которое позволило бы запустить Spyder с необходимой версией Python автоматически после активации требуемой виртуальной среды?

томасказемекас
источник

Ответы:

118

Вот быстрый способ сделать это в 2020 году. С помощью Anaconda Navigator:

  1. Откройте Anaconda Navigator
  2. Создайте свою новую среду по своему желанию. Я назвал эту среду «тестовой». Щелкните по нему, чтобы активировать.

введите описание изображения здесь

  1. Перейдите в «Домашнюю страницу» и нажмите «Установить» под полем Spyder.

введите описание изображения здесь

  1. Нажмите "Запустить / Выполнить"

При настройке среды все еще есть некоторые незначительные ошибки (большинство из которых решаются перезапуском навигатора), если вы обнаружите ошибку, пожалуйста, опубликуйте ее в баг-трекере Anaconda Issues . Спасибо.


Если даже в этом случае это не сработает, навигатор все равно может быть полезен, щелкнув> Enviroments, вы попадете в окно управления модулями, установленными в такой среде, выполните поиск и выберите те, которые связаны со шпионами, а затем нажмите Применить, чтобы установить их и их зависимости.

введите описание изображения здесь

Адельриозантьяго
источник
11
Если возможно, это должно быть добавлено к
лучшему
2
Так лучше.
Эрик Олд
2
Да. Похоже, что для каждой виртуальной среды нужно устанавливать разные экземпляры Spyder.
Михаил Генкин
4
Могу я сделать это из командной строки? Запуск навигатора каждый раз кажется
бредом
1
@nocibambi Да, если вы имеете в виду просто запустить Spyder в env из cmd, см. нижнюю часть ответа tomaskazemekas.
Лоренц
105

В Anaconda есть возможность создавать виртуальные среды с необходимой версией Python.

conda create -n myenv python=3.4

Чтобы активировать его:

source activate myenv   # (in linux, you can use . as a shortcut for "source")
activate myenv          # (in windows - note that you should be in your c:\anaconda2 directory)

ОБНОВЛЕНИЕ . Я тестировал его с Ubuntu 18.04. Теперь вам необходимо дополнительно установить spyder для новой среды с помощью этой команды (после активации среды с помощью команды выше):

conda install spyder

(Я также тестировал установку с помощью pip, но для Python 3.4 или более старых версий он ломается из-за ошибки зависимостей библиотеки, которая требует ручной установки.)

А теперь, чтобы запустить Spyder с Python 3.4, просто введите:

spyder

Spyder с Python 3.4

ИЗМЕНИТЬ от читателя:

Для нормального открытия, использование «Анаконда Prompt»> activate myenv> spyder(тогда «Анаконда Prompt» должен оставаться открытым, вы не можете использовать его для других команд, и сила, близко выключит Spyder). Это, конечно, быстрее, чем длительная загрузка «Anaconda Navigator»> переключение среды> запуск Spyder (ответ @ adelriosantiago).

томасказемекас
источник
7
Я тестировал это на Windows 7, и это сработало. Вам не нужно добавлять слово «источник» в начале, чтобы активировать среду. Чтобы иметь Python 2,7, измените настройку на python = 2.7.
tomaskazemekas
4
о, может быть, вам сначала нужно установить Spyder в эту среду? Я создал среду с numpy вместо anaconda, так что, может быть, он запускает spyder из основной среды?
Эндолит
4
кажется, проблема в этом. То же самое с ipython, но было исправлено после его установки в среде
endolith
9
Я также обнаружил, что в Windows (10) простой запуск spyder из среды anaconda по-прежнему запускал spyder с моим питоном по умолчанию, и мне пришлось сначала установить spyder в среде anaconda, чтобы открыть spyder с питоном этой среды.
Max Power
9
Также убедитесь, что у вас есть Spyder в этой среде byconda install -n myenv spyder
shahar_m
57

Дополнительно к ответу томасказемекаса: вы должны установить spyder в этой виртуальной среде:

conda install -n myenv spyder

(в Windows, для Linux или MacOS вы можете искать похожие команды)

Тин Луу
источник
2
Spyder обычно устанавливается как часть списка пакетов Anconda Python . Дополнительная установка может потребоваться только в случае miniconda.
tomaskazemekas
1
Да это правильно. В моем случае моя виртуальная среда была установлена ​​раньше, и это облегченная версия, я устанавливаю только очень необходимые пакеты. Думаю, в моей ситуации есть кто-то.
Tin Luu
@tomaskazemekas, сэр, я установил miniconda3 :) как я могу запустить свой код Python в spyder, если я не знаю, как запустить spyder? когда я набираю «spyder» в приглашении miniconda «не могу распознать эту команду», генерируется ошибка.
Номан Марват
@Noman marwat Поскольку spyder не является частью miniconda, вы должны установить его перед запуском с помощью команды conda install spyder.
tomaskazemekas 05
После этого найдите символическую ссылку внутри myenv/binкаталога и скопируйте ее в Applicationsпапку, чтобы вы могли легко найти ее и запустить Spyder в ее среде, не вводя небольшое черное окно! (вы также можете легко добавить к нему значок, если вам нравятся значки)
PatrickT
49

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

  1. запустить spyder из окружения (после активации источника)
  2. перейдите в Инструменты -> Настройки -> Интерпретатор Python и выберите файл python из окружения, которое вы хотите связать с spyder ex: / home / you / anaconda3 / envs / your_env / bin / python

Работал на ubuntu 16, spyder3, python3.6.

Буссад
источник
После проверки всех остальных сообщений в этом и других источниках (два дня попыток!), Это было единственное рабочее решение, позволяющее установить правильную среду envs внутри Spider ..
Антонио Канепа
Не требуется шаг (1), поскольку шаг (2) уже направил интерпретатор в среду.
Feras
3
@Feras Для будущих читателей: я тоже подумал, что шаг 1 был лишним. Но его пропуск вызывает всевозможные сумасшедшие ошибки (и даже приводит к сбою пользовательского интерфейса и зависанию Spyder).
cheekybanana
20

Чтобы обойтись без переустановки Spyder во всех средах, следуйте официальной ссылке здесь .

В итоге (проверено с помощью conda):

  • Spyder должен быть установлен в базовой среде

Из системной подсказки:

  • Создайте новую среду. Обратите внимание, что в зависимости от того, как вы его создаете (conda, virtualenv), папка среды будет расположена в другом месте вашей системы)

  • Активируйте среду (например, conda activate [yourEnvName])

  • Установите spyder-ядра внутри окружения (например, conda install spyder-kernels)

  • Найдите и скопируйте путь к исполняемому файлу python внутри среды. Найти этот путь можно с помощью этой команды из командной строкиpython -c "import sys; print(sys.executable)"

  • Деактивировать среду (т.е. вернуться на базу conda deactivate)

  • запустить spyder ( spyder3)

  • Наконец, в меню инструментов Spyder выберите «Настройки»> «Интерпретатор Python»> «Используйте следующий интерпретатор» и вставьте путь к исполняемому файлу среды Python.

  • Перезагрузите консоль ipython

PS: в spyder вы должны увидеть внизу что-то вроде этоговведите описание изображения здесь

Вуаля

Алексис
источник
Это единственный разумный ответ.
sjsam
Обратите внимание, что при использовании virtualenv & spyder 4.1.3 в нижней строке ничего не появляется, подтверждающее (хотя все работало по назначению)
Alexis
Это правильный ответ! Кроме того, установка spyder возможна в любой виртуальной среде conda. Это не обязательно должно быть в базовой среде.
Санчит,
1
Вы правы, @Sanchit, вы можете установить spyder "pip / conda" в каждой среде, затем можете вызвать его оттуда, но если вам нужна только одна установка, это решение
Алексис,
10

Приведенные выше ответы верны, но я звоню spyderв свой virtualenv, все равно буду использовать my PATHдля поиска версии spyder в моем enaconda env по умолчанию. Я нашел этот ответ, который дал следующее обходное решение:

source activate my_env            # activate your target env with spyder installed
conda info -e                     # look up the directory of your conda env
find /path/to/my/env -name spyder # search for the spyder executable in your env
/path/to/my/env/then/to/spyder    # run that executable directly

Я выбрал это вместо изменения PATHили добавления ссылки на исполняемый файл с более высоким приоритетом, PATHпоскольку я чувствовал, что это с меньшей вероятностью приведет к поломке других программ. Однако я добавил псевдоним к исполняемому файлу в ~/.bash_aliases.

Стивен Калт
источник
8

У меня была такая же проблема при попытке запустить Spyder в виртуальной среде.

Решение простое:

Активируйте свою виртуальную среду.

Затем установите Spyder и его зависимости (PyQt5) в вашей виртуальной среде.

Затем запустите Spyder3 из интерфейса командной строки виртуальной среды.

Теперь у меня все работает нормально.

Иерусалимский программист
источник
1
Это больше не работает с python2 под ubuntu 16. Любые идеи работы?
masad
Python 2 устарел. Рекомендуется и желательно обновить себя до использования Python 3.
Иерусалимский программист,
4

В Windows:

Вы можете создать ярлык, выполнив

Anaconda3\pythonw.exe Anaconda3\cwp.py Anaconda3\envs\<your_env> Anaconda3\envs\<your env>\pythonw.exe Anaconda3\envs\<your_env>\Scripts\spyder-script.py

Однако, если вы запустили spyder из вашего venv внутри оболочки Anaconda, я считаю, что он создает для вас этот ярлык (просто выполните поиск «Spyder» в Windows).

гладкая посуда
источник
1

Я следую одному из приведенных выше советов, и он действительно работает. Таким образом, пока вы загружаете Anaconda в Ubuntu, используя приведенный выше совет, вы можете «создавать» среды. По умолчанию при загрузке Spyder в моем случае это: (base) smith @ ubuntu ~ $ . После того, как вы создадите среду, то есть fenics, и активируете ее с помощью $ conda activate fenics, подсказка изменится на (fenics) smith @ ubuntu ~ $ . Затем вы запускаете Spyder из этого приглашения, то есть $ spyderи ваша система откройте Spyder IDE, и вы можете написать на ней код fenics. Помните, что каждый раз, когда вы открываете терминал, ваша система открывает приглашение по умолчанию. Вы должны активировать среду, в которой находится ваш пакет, и быстро изменить его, то есть (fenics). Я надеюсь, это поможет. Спасибо вам, а также всем людям, которые помогают. Это отличное сообщество.

Бэтмен47
источник