Como executar o Spyder em ambiente virtual?

98

Tenho usado o Spyder instalado com a distribuição Anaconda, que usa Python 2.7 como padrão. Atualmente preciso configurar um ambiente virtual de desenvolvimento com Python 3.4.

As duas principais sugestões após a pesquisa online são:

  1. para configurar o ambiente virtual primeiro e apontar para alterar as preferências do Spyder, por exemplo, aqui ;
  2. para instalar todas as dependências do Spyder, como PyQt4, no próprio ambiente virtual, por exemplo, aqui ;

Ambas as recomendações são complicadas e não parecem opções inteligentes de desenvolvimento.

Existe uma solução que permitiria executar Spyder com a versão necessária do Python automaticamente após ativar o ambiente virtual necessário?

tomaskazemekas
fonte

Respostas:

114

Esta é uma maneira rápida de fazer isso em 2020. Usando o Anaconda Navigator:

  1. Abra o Anaconda Navigator
  2. Crie seu novo ambiente como desejar. Chamei esse ambiente de "teste". Clique nele para ativá-lo.

insira a descrição da imagem aqui

  1. Vá para "Home" e clique em "Instalar" na caixa do Spyder.

insira a descrição da imagem aqui

  1. Clique em "Iniciar / Executar"

Ainda existem alguns pequenos bugs ao configurar seu ambiente (a maioria dos quais são resolvidos reiniciando o Navigator), se você encontrar um bug, poste-o no rastreador de bugs de Problemas do Anaconda . Obrigado.


Se mesmo assim isso não funcionar, o Navigator ainda pode ser útil, clicando em> Ambientes leva você a uma janela de gerenciamento dos módulos instalados em tal ambiente, pesquisando e selecionando os relacionados ao spyder, e clicando em Aplicar irá instalá-los e suas dependências.

insira a descrição da imagem aqui

adelriosantiago
fonte
11
Isso deve ser adicionado à solução superior, se possível
dward 4 de
2
Muito, muito melhor.
Eric Auld
2
Sim. Parece que é preciso instalar uma instância diferente do Spyder para cada VE.
Mikhail Genkin
3
Posso fazer isso na linha de comando? Executar o Navigator toda vez parece uma chatice ...
nocibambi
1
@nocibambi Sim, se você pretende apenas executar o Spyder em um env do cmd, consulte a parte inferior da resposta de tomaskazemekas.
Lorenz
104

Existe uma opção para criar ambientes virtuais no Anaconda com a versão necessária do Python.

conda create -n myenv python=3.4

Para ativá-lo:

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)

ATUALIZAÇÃO . Eu testei com Ubuntu 18.04. Agora você deve instalar o spyder adicionalmente para o novo ambiente com este comando (após a ativação do ambiente com o comando acima):

conda install spyder

(Eu também testei a instalação com pip, mas para Python 3.4 ou versões anteriores, ele quebra com o erro de dependências da biblioteca que requer instalação manual.)

E agora, para executar o Spyder com Python 3.4, basta digitar:

spyder

Spyder com Python 3.4

EDITAR de um leitor:

Para uma abertura normal, use "Anaconda Prompt"> activate myenv> spyder(então o "Anaconda Prompt" deve permanecer aberto, você não pode usá-lo para outros comandos, e uma força de perto será desligado Spyder). Obviamente, isso é mais rápido do que a longa carga do "Anaconda Navigator"> switch environment> launch Spyder (resposta de @adelriosantiago).

tomaskazemekas
fonte
7
Eu testei isso no Windows 7 e funcionou. Você não precisa adicionar a palavra "fonte" no início para ativar o ambiente. Para ter o Python 2,7, altere a configuração para python = 2.7.
tomaskazemekas
4
oh, talvez você tenha que instalar o spyder nesse ambiente primeiro? Eu criei o ambiente com numpy em vez de anaconda, então talvez ele esteja executando o spyder no ambiente principal?
endolith
4
esse parece ser o problema. mesma coisa com ipython, mas foi corrigido após instalá-lo no ambiente
endolith
9
Eu também descobri que no Windows (10), apenas iniciando o spyder de um ambiente anaconda ainda iniciava o spyder com meu python padrão, e eu tive que instalar o spyder no ambiente anaconda primeiro para abrir o spyder com o python daquele ambiente.
Potência máxima de
9
Certifique-se também de ter o spyder naquele ambiente atéconda install -n myenv spyder
shahar_m
57

Além da resposta de tomaskazemekas: você deve instalar o spyder nesse ambiente virtual:

conda install -n myenv spyder

(no Windows, para Linux ou MacOS, você pode pesquisar comandos semelhantes)

Tin Luu
fonte
2
O Spyder é geralmente instalado como parte da lista de pacotes Anconda Python . A instalação adicional pode ser necessária apenas no caso do miniconda.
tomaskazemekas
1
Sim está certo. No meu caso já tive meu ambiente virtual instalado antes, e é uma versão light, só instalo pacotes muito necessários. Acho que há alguém na minha situação.
Tin Luu
@tomaskazemekas senhor eu instalei o miniconda3 :) como posso executar meu código python no spyder se não sei como executar o spyder? quando eu digito "spyder" no prompt do miniconda, o erro "não foi possível reconhecer este comando" é gerado.
Noman marwat
@Noman marwat Visto que o spyder não faz parte do miniconda, você deve instalá-lo antes de executar o comando conda install spyder.
tomaskazemekas
Depois disso, procure o link simbólico dentro do myenv/bindiretório e copie-o na Applicationspasta para que você possa encontrá-lo facilmente e iniciar o Spyder dentro de seu ambiente sem ter que digitar em uma pequena janela preta! (você também pode adicionar um ícone a ele facilmente, se
gostar de
48

O que funcionou para mim:

  1. execute o spyder do ambiente (após a ativação da fonte)
  2. vá para Ferramentas -> preferências -> Interpretador python e selecione o arquivo python do env que deseja vincular a spyder ex: / home / you / anaconda3 / envs / your_env / bin / python

Funcionou em ubuntu 16, spyder3, python3.6.

Boussad
fonte
Depois de tentar todo o resto deste e de outros posts (dois dias tentando!), Esta foi a única solução de trabalho para definir o ambiente adequado dentro do Spider.
Antonio Canepa
Não exija a etapa (1), uma vez que a etapa (2) já direcionou o interpretador para o ambiente.
Feras de
2
@Feras Para leitores futuros: também achei a etapa 1 redundante. Mas omiti-lo causa todos os tipos de erros malucos (e até faz com que a IU falhe e o Spyder pare de responder).
cheekybanana de
17

Para fazer sem reinstalar o spyder em todos os ambientes, siga a referência oficial aqui .

Em resumo (testado com conda):

  • Spyder deve ser instalado no ambiente básico

No prompt do sistema:

  • Crie um novo ambiente. Observe que dependendo de como você o cria (conda, virtualenv), a pasta de ambiente estará localizada em um local diferente em seu sistema)

  • Ative o ambiente (por exemplo, conda activate [yourEnvName])

  • Instale spyder-kernels dentro do ambiente (por exemplo, conda install spyder-kernels)

  • Encontre e copie o caminho para o executável Python dentro do ambiente. Encontrar este caminho pode ser feito usando o prompt deste comandopython -c "import sys; print(sys.executable)"

  • Desative o ambiente (ou seja, retorne à base conda deactivate)

  • execute spyder ( spyder3)

  • Finalmente, no menu de ferramentas do spyder vá para Preferências> Interpretador Python> Use o seguinte interpretador e cole o caminho do executável python do ambiente

  • Reinicie o console ipython

PS: no spyder você deve ver na parte inferior algo assiminsira a descrição da imagem aqui

Voila

Alexis
fonte
Esta é a única resposta sensata.
sjsam
Observe que, ao usar o virtualenv & spyder 4.1.3, nada aparece na linha de fundo confirmando (tudo funcionou da maneira pretendida)
Alexis
Essa é a resposta correta! Além disso, a instalação do spyder pode ser realizada em qualquer ambiente virtual conda. Não precisa estar em um ambiente básico.
Sanchit
1
Você está certo @Sanchit, você pode "pip / conda" instalar o spyder em cada ambiente e depois chamá-lo de lá, mas quando você quiser apenas uma instalação, esta é a solução
Alexis
10

As respostas acima estão corretas, mas eu chamando spyderem meu virtualenv ainda usaria meu PATHpara procurar a versão do spyder em meu env anaconda padrão. Encontrei esta resposta que deu a seguinte solução alternativa:

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

Escolhi isso em vez de modificar PATHou adicionar um link para o executável com uma prioridade mais alta, PATHpois achei que isso dificilmente quebraria outros programas. No entanto, adicionei um alias ao executável em ~/.bash_aliases.

Steven Kalt
fonte
8

Eu simplesmente tive o mesmo problema ao tentar fazer o Spyder rodar no ambiente virtual.

A solução é simples:

Ative seu ambiente virtual.

Em seguida, instale o Spyder e suas dependências (PyQt5) em seu ambiente virtual.

Em seguida, inicie o Spyder3 a partir da CLI do seu ambiente virtual.

Funciona bem para mim agora.

Jerusalem Programmer
fonte
1
Isso não funciona mais com python2 no Ubuntu 16. Alguma ideia de uma solução alternativa?
Masad
Python 2 está obsoleto. É recomendável e aconselhável atualizar-se para usar o Python 3.
Jerusalem Programmer
4

No Windows:

Você pode criar um atalho executando

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

No entanto, se você iniciou o spyder de seu venv dentro do shell do Anaconda, acredito que ele cria este atalho para você (basta pesquisar "Spyder" no Windows).

smoothware
fonte
1

Eu sigo um dos conselhos acima e realmente funciona. Em resumo, enquanto você baixa o Anaconda no Ubuntu, usando o conselho dado acima pode ajudá-lo a 'criar' ambientes. O padrão quando você baixa o Spyder no meu caso é: (base) smith @ ubuntu ~ $ . Depois de criar o ambiente, ou seja, fenics e ativá-lo com $ conda activate fenics, o prompt muda para (fenics) smith @ ubuntu ~ $ . Então você inicia o Spyder a partir deste prompt, ou seja, $ spydere seu sistema abre o IDE do Spyder, e você pode escrever código fenics nele. Lembre-se de que toda vez que você abre um terminal, seu sistema abre o prompt padrão. Você tem que ativar seu ambiente onde seu pacote está e o prompt mudar para ele, isto é (fenics). Espero que isso ajude. Obrigado e também a todas as pessoas que ajudaram. Esta comunidade é ótima.

batman47
fonte