Як запустити Spyder у віртуальному середовищі?


98

Я використовую Spyder, встановлений з дистрибутивом Anaconda, який використовує Python 2.7 за замовчуванням. Наразі мені потрібно налаштувати віртуальне середовище для розробки за допомогою Python 3.4.

Дві найкращі пропозиції після дослідження в Інтернеті:

  1. спочатку налаштувати віртуальне середовище та вказати зміну уподобань Spyder, наприклад тут ;
  2. встановити всі залежності Spyder, такі як PyQt4, у самому віртуальному середовищі, наприклад тут ;

Обидві рекомендації громіздкі і не схожі на розумні варіанти розвитку.

Чи існує рішення, яке дозволило б автоматично запускати Spyder з необхідною версією Python після активації необхідного віртуального середовища?

Відповіді:


114

Ось швидкий спосіб зробити це в 2020 році. За допомогою навігатора Anaconda:

  1. Відкрийте Anaconda Navigator
  2. Створіть своє нове середовище, як забажаєте. Я назвав це середовище "тестом". Клацніть на ньому, щоб активувати його.

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

  1. Перейдіть до "Домашня сторінка" та натисніть "Встановити" під полем Spyder.

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

  1. Натисніть "Запустити / запустити"

При встановленні вашого середовища все ще існують незначні помилки (більшість з яких вирішується перезапуском Навігатора). Якщо ви виявили помилку, опублікуйте її в програмі відстеження помилок Anaconda Issues . Дякую.


Якщо навіть тоді це не працює, Навігатор все одно може бути корисним, натиснувши> Навколишнє середовище, Ви перейдете до вікна управління модулями, встановленими в такому середовищі, виконайте пошук та вибір шпигунських модулів, а потім натисніть кнопку Застосувати, щоб встановити їх та їх залежності.

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


11
Це слід додати до найкращого рішення, якщо це можливо
dward4

2
Шлях, набагато краще.
Ерік Олд,

2
Так. Здається, для кожного VE потрібно встановити інший екземпляр Spyder.
Михайло Генкін

3
Чи можу я це зробити з командного рядка? Запуск Навігатора кожного разу здається перетягуванням ...
nocibambi

1
@nocibambi Так, якщо ви маєте на увазі просто запустити Spyder у env із cmd, дивіться внизу відповіді tomaskazemekas.
Лоренц

104

Існує можливість створити віртуальне середовище в 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, тому, можливо, він запускає шпигун з основного середовища?
ендоліт

4
це, здається, проблема. те ж саме з ipython, але було виправлено після встановлення його в середовищі
ендоліт

9
Я також виявив, що у вікнах (10), лише запустивши шпигун з середовища анаконди, він все ще запускав шпигун з моїм пітоном за замовчуванням, і мені довелося спочатку встановити шпигун у середовищі анаконди, щоб відкрити шпигун з пітоном цього середовища.
Максимальна потужність

9
Також переконайтеся, що у вас є шпигун у цьому середовищі доconda install -n myenv spyder
shahar_m

57

Додатково до відповіді tomaskazemekas: вам слід встановити spyder у цьому віртуальному середовищі, виконавши:

conda install -n myenv spyder

(у Windows, для Linux або MacOS ви можете шукати подібні команди)


2
Spyder зазвичай встановлюється як частина списку пакетів Anconda Python . Додаткова установка може знадобитися лише у випадку мініконди.
tomaskazemekas

1
Так, правильно. У моєму випадку у мене раніше було встановлено віртуальне середовище, і це полегшена версія, я встановлюю лише дуже необхідні пакети. Я думаю, хтось перебуває в моїй ситуації.
Tin Luu

@tomaskazemekas сер, я встановив miniconda3 :) як я можу запустити свій код python в spyder, оскільки я не знаю, як запускати spyder? при введенні "spyder" у рядку miniconda "не вдалося розпізнати цю команду" генерується помилка.
Noman marwat

@Noman marwat Оскільки шпигун не є частиною мініконди, вам доведеться встановити його перед запуском за допомогою команди conda install spyder.
tomaskazemekas

Після цього знайдіть символічне посилання всередині myenv/binкаталогу та скопіюйте його в Applicationsпапку, щоб ви могли легко його знайти та запустити Spyder всередині його середовища, не вводячи маленьке чорне вікно! (Ви також можете легко додати піктограму, якщо ви любите іконки)
PatrickT

49

Що мені вдалося:

  1. запустити шпигун з навколишнього середовища (після активації джерела)
  2. перейдіть до Інструменти -> налаштування -> python Interpreter і виберіть файл python із env, на який ви хочете зробити посилання spyder ex: / home / you / anaconda3 / envs / your_env / bin / python

Працював на ubuntu 16, spyder3, python3.6.


Спробувавши всі решту цієї та інших публікацій (два дні намагаючись!), Це було єдиним робочим рішенням для встановлення належних умов середовища всередині Spider ..
Антоніо Канепа

Не потрібно крок (1), оскільки крок (2) вже перенаправив інтерпретатор до середовища.
Ферас,

2
@Feras Для майбутніх читачів: я також вважав крок 1 зайвим. Але його пропущення спричиняє всілякі божевільні помилки (і навіть змушує користувацький інтерфейс виправляти помилки, а Spyder не реагує).
cheekybanana

18

Щоб обійтися без перевстановлення шпигуна у всіх середовищах, дотримуйтесь офіційних посилань тут .

У підсумку (перевірено за допомогою conda):

  • Spyder слід встановлювати в базовому середовищі

З системного запиту:

  • Створіть нове середовище. Зверніть увагу, що залежно від того, як ви його створюєте (conda, virtualenv), папка середовища буде розташована в іншому місці вашої системи)

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

  • Встановіть ядра-шпигуни всередині середовища (наприклад, conda install spyder-kernels)

  • Знайдіть і скопіюйте шлях до виконуваного файлу python всередині середовища. Знайти цей шлях можна за допомогою підказки цієї командиpython -c "import sys; print(sys.executable)"

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

  • запустити шпигуна ( spyder3)

  • Нарешті, у меню Інструмент шпигуна перейдіть до Налаштування> Інтерпретатор Python> Використовуйте наступний інтерпретатор і вставте виконуваний шлях середовища python

  • Перезапустіть консоль ipython

PS: у spyder ви повинні побачити внизу щось подібневведіть тут опис зображення

Вуаля


Це єдина розумна відповідь.
sjsam

Зверніть увагу, що при використанні virtualenv & spyder 4.1.3 у нижній частині нічого не з'являється, що підтверджує (все працювало за призначенням)
Alexis

Це правильна відповідь! Крім того, установка шпигуна може бути в будь-якому віртуальному середовищі. Це не повинно знаходитися в базовому середовищі.
Санчіт,

1
Ви маєте рацію @Sanchit, ви можете "pip / conda" встановити spyder у кожному середовищі, тоді можете зателефонувати йому звідти, але коли вам потрібна лише одна установка, це рішення
Alexis

10

Наведені вище відповіді є вірними, але я, зателефонувавши spyderдо мого virtualenv, все одно використовував би мою, PATHщоб знайти версію spyder у моєму типовому enconda 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 працювати у віртуальному середовищі.

Рішення просте:

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

Потім pip встановіть Spyder та його залежності (PyQt5) у ваше віртуальне середовище.

Потім запустіть Spyder3 з віртуального середовища CLI.

Зараз у мене це чудово працює.


1
Це вже не працює з python2 під ubuntu 16. Будь-які ідеї обійти?
Масад

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

Однак, якщо ви запустили шпигун з вашого venv всередині оболонки Anaconda, я вважаю, що він створює цей ярлик для вас (просто знайдіть "Spyder" у Windows).


1

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.