Eu configurei o PyCharm, criei meu virtualenv (por meio do comando virtual env ou diretamente no PyCharm) e ativei esse ambiente como meu intérprete. Tudo está funcionando bem.
No entanto, se eu abrir um terminal usando "Ferramentas, Abrir Terminal", o prompt do shell fornecido não está usando o env virtual; Eu ainda tenho que usar source ~/envs/someenv/bin/activate
dentro desse Terminal para ativá-lo.
Outro método é ativar o ambiente em um shell e executar o PyCharm a partir desse ambiente. Isso é "viável", mas muito feio, e significa que tenho grandes problemas se mudar de ambiente ou projeto do PyCharm: agora estou usando o ambiente totalmente errado.
Existe alguma outra maneira muito mais fácil de "Ferramentas, Abrir Terminal" ativar automaticamente o ambiente virtual?
~/pycharmenv/bin/terminalactivate
parece uma boa opção..pycharmrc
na pasta de início do projeto, para que possa ter um arquivo diferente para cada projeto. Em um projeto configurado corretamente, não há necessidade de fornecer o caminho absoluto para o.pycharmrc
arquivo.Atualizar:
As preferências em Configurações (Preferências) | Ferramentas | Terminal são globais.
Se você usar um venv para cada projeto, lembre-se de usar a variável de caminho atual e um nome venv padrão:
Para usuários do Windows: ao usar PyCharm com um ambiente virtual, você pode usar o
/K
parâmetrocmd.exe
para definir o ambiente virtual automaticamente.PyCharm 3 ou 4:
Settings
,Terminal
,Default shell
e add/K <path-to-your-activate.bat>
.PyCharm 5:
Settings
,Tools
,Terminal
, e adicione/K <path-to-your-activate.bat>
aShell path
.PyCharm 2016,1 ou 2016,2:
Settings
,Tools
,Terminal
, e adicione""/K <path-to-your-activate.bat>""
aShell path
e adicione (mente as aspas). Além disso, adicione aspas ao redor de cmd.exe, resultando em:"cmd.exe" /k ""C:\mypath\my-venv\Scripts\activate.bat""
fonte
%CD%
é o diretório de trabalho atual, consulte o comando shell do Windows para obter o caminho completo para o diretório atual?Para usuários do Windows ao usar PyCharm e um ambiente virtual no Windows, você pode usar o parâmetro / k para cmd.exe para definir o ambiente virtual automaticamente.
Vá para Configurações, Terminal, Shell padrão e adicione
/K <path-to-your-activate.bat>
.Não tenho reputação de comentar sobre a resposta anterior, portanto, estou postando esta versão corrigida. Isso realmente economiza muito tempo.
Atualizar:
Nota: Pycharm agora oferece suporte a ambientes virtuais diretamente e parece funcionar bem para mim - portanto, minha solução alternativa não é mais necessária.
fonte
Com base nas respostas de Peter e na experimentação, descobri uma boa "solução geral", que resolve o seguinte:
Solte este script em um diretório bin em algum lugar. Por exemplo, ~ / bin / pycharmactivate
Em seguida, defina o caminho do Shell do PyCharm para:
fonte
if [ -r "/etc/profile" ] ; then . /etc/profile ; fi if [ -r "~/.bash_profile" ] ; then . ~/.bash_profile elif [ -r "~/.bash_login" ] ; then . ~/.bash_login elif [ -r "~/.profile" ] ; then . ~/.profile fi source ~/learnp/project1/venv/bin/activate
PyCharm 4 agora tem virtualenvs integrado no IDE. Ao selecionar seu intérprete de projeto, você pode criar, adicionar ou selecionar um virtualenv. Eles adicionaram um "Console Python" que é executado no interpretador de projeto configurado.
Mais informações aqui.
fonte
source /path/to/venv/bin/activate
manualmente no terminal.Obrigado Chris, seu script funcionou para alguns projetos, mas não todos na minha máquina. Aqui está um script que escrevi e espero que alguém o considere útil.
fonte
source /etc/profile
no início do arquivo ~ / .pycharmrc (no Mac Yosemite) 2) No Pycharm, edite Preferências> Ferramentas> Terminal> Caminho do shell para "/ bin / bash --rcfile ~ / .pycharmrc"Eu vi todas as respostas acima, mas nenhuma delas é elegante o suficiente para mim. Em PyCharm 2017/01/03 (no meu computador), a maneira mais fácil é abrir
Settings->Tools->Terminal
e verificarShell integration
eActivate virtualenv
opções.fonte
Se você estiver usando a versão windows é bastante fácil. Se você já possui o ambiente virtual basta navegar até a pasta, localize
activate.bat
dentro daScripts
pasta. copie o caminho completo e cole no terminal do pycharm e pressioneEnter
e pronto!Se você precisa criar um novo ambiente virtual:
Vá para arquivos> configurações, procure
project interpreter
, abra-o, clique no botão de engrenagem e crie o ambiente onde quiser e siga o primeiro parágrafo.fonte
activate.bat
para cada um deles?activate.bat
arquivos separados . se gostar da resposta, sinta-se à vontade paraScripts
pasta. O Pycharm também reclama queactivate.bat
não é um SDK do python válidoactivate
estava usando o Anaconda e, em seguida, executar o arquivo em lote dentro dela. ou se for possível para você, vá com a criação de um novo ambiente.No Mac é PyCharm => Preferências ... => Ferramentas => Terminal => Ativar virtualenv , que deve estar habilitado por padrão.
fonte
Acabei de adicionar um script chamado pycharmactivate ao meu diretório inicial. Defina o valor de PyCharm (4.0.1) Arquivo> Configurações> Ferramentas> Terminal> Caminho do shell para / bin / bash --rcfile ~ / pycharmactivate. Talvez não seja a melhor solução no caso de você ter diferentes projetos e diretórios / nomes de virtualenv, mas funciona para mim. Este script contém as 3 linhas a seguir e assume que seu virtualenv tem o mesmo nome que seu diretório de projeto.
fonte
Seguindo a resposta de Peter, aqui está a versão para Mac do
.pycharmrc
arquivo:Galinha
fonte
Tenho uma solução que funcionou na minha máquina com Windows 7.
Acredito que o terminal do PyCharm é o resultado de sua execução
cmd.exe
, que carregará aPATH
variável do Windows e usará a versão do Python que encontrar primeiro dentro delaPATH
. Para editar esta variável, clique com o botão direito em Meu Computador -> Propriedades -> Configurações Avançadas do Sistema -> guia Avançado -> botão Variáveis de Ambiente .... Na seção Variáveis do sistema , selecione e edite aPATH
variável.Aqui está a parte relevante do meu
PATH
antes de editar:... e após a edição
PATH
(apenas 3 linhas agora):Para testar isso, abra um novo terminal do Windows ( Iniciar -> digite
cmd
e pressione Enter) e veja se ele está usando seu ambiente virtual. Se funcionar, reinicie o PyCharm e teste-o no terminal do PyCharm.fonte
isto é o que estou fazendo: criar um arquivo activate_env.bat (windows, talvez .sh no linux) no seguinte código-fonte:
e outro arquivo deactivate_env.bat:
toda vez que abrir a janela do terminal, basta executar o arquivo bat para ativar / desativar o virtualenv, você ficará no caminho do código-fonte, não há necessidade de alterar o caminho de ida e volta.
fonte
Se o seu Pycharm 2016.1.4v e superior você deve usar
"default path" /K "<path-to-your-activate.bat>"
não se esqueça das citaçõesfonte
Se você moveu seu projeto para outro diretório, pode definir o novo caminho na caixa de diálogo Configurações. E então você precisa definir este intérprete de projeto na caixa de diálogo Editar configuração.
fonte
Outra alternativa é usar o virtualenvwrapper para gerenciar seus ambientes virtuais. Parece que uma vez que o script virtualenvwrapper é ativado , o pycharm pode usá-lo e então o
workon
comando simples estará disponível no console do pycharm e apresentará os ambientes virtuais disponíveis:fonte
Este método deve funcionar com ambientes virtuais arbitrários por projeto e não faz suposições em seu ambiente, pois usa ganchos que você cria.
Você escreve:
Dado que o PyCharm mais recente atual (Community 2016.1) não permite que as configurações do Terminal por projeto iniciem com o script que invoca o gancho específico do projeto. Este é o meu
~/.pycharmrc
:Se você estiver usando algo diferente do Bash, invoque seu próprio
.bash_profile
equivalente se desejar.Agora configure seu PyCharm "Ferramentas -> Terminal -> Caminho do Shell" para invocar este script, por exemplo:
/bin/bash --rcfile ~/.pycharmrc
Finalmente, para cada projeto PyCharm você precisa de um ambiente virtual específico ativado, crie um arquivo dentro da raiz do projeto PyCharm
.pycharm/term-activate
. Este é o seu gancho e ele simplesmente definirá o nome do ambiente virtual desejado para o seu projeto PyCharm:É claro que você pode estender seus ganchos com qualquer coisa que achar útil no ambiente de terminal de seu projeto PyCharm específico.
fonte
Para ambientes virtuais conda no Windows, certifique-se de que seu arquivo em lote NÃO seja nomeado,
activate.bat
pois isso causará um conflito com oactivate
comando conda , resultando em uma chamada recursiva do arquivo em lote.O que funciona para mim é o seguinte caminho do Shell:
E no arquivo activate-env.bat:
fonte
Eu queria um ambiente virtual separado para cada projeto e não me importava muito em ter arquivos adicionais para facilitar isso. Uma solução que você só precisa fazer uma vez e funciona para todos os projetos é adicionar o seguinte ao seu
.bashrc
ou.bash_profile
:Isso verifica se há um ambiente virtual onde o terminal está sendo aberto e, se houver, o ativa (e, claro, outros caminhos relativos podem ser usados). As configurações do terminal do PyCharm podem ser deixadas como padrão.
fonte
PyCharm 4.5.4
Não sei por quê, mas não funciona para mim. PyCharm imprime um erro.
cmd.exe /K "<path-to-your-activate.bat>"
Funciona, mas cria o mesmo virtualenv para cada projeto, mesmo que não seja necessário.Este recibo está funcionando! Mas a string
/env_yourenvlocate/scripts/activate.bat
deve conter aspas, como esta"Full_path_to_your_env_locate\scripts\activate.bat"
!Desativar o virtualenv é muito fácil - digite no terminal 'desativar'
fonte
Solução para WSL (Ubuntu no Windows)
Se estiver usando WSL (Ubuntu no Windows), você também pode abrir o bash como terminal no pycharm e ativar um virtualenv do linux.
Use um
.pycharmrc
arquivo como descrito na resposta de Peter Gibson; Adicione o.pycharmrc
arquivo ao seu diretório inicial com o seguinte conteúdo:Em Arquivo Pycharm > Configurações> Ferramentas> Terminal, adicione o seguinte 'Caminho do shell':
Virtualenv específico do projeto
O caminho para o seu virtualenv in
.pycharmrc
não precisa ser absoluto. Você pode definir um virtualenv específico do projeto definindo um caminho relativo do diretório do projeto. Meu virtualenv está sempre localizado em uma pasta 'venv' no diretório do meu projeto, então meu.pycharmrc
arquivo se parece com este:BÔNUS: abre automaticamente o túnel ssh para conectar o virtualenv como intérprete do projeto
Adicione o seguinte ao seu
.pycharmrc
arquivo:Isso verifica se um túnel ssh já está aberto e abre um caso contrário. Em Arquivo -> Configurações -> Projeto -> Intérprete do projeto no Pycharm, adicione um novo interpretador remoto com a seguinte configuração:
Agora, quando você abre seu projeto, seu bash inicia automaticamente em seu virtualenv, abre um túnel ssh e o pycharm conecta o virtualenv como interpretador remoto.
aviso: a última atualização no Windows inicia automaticamente um serviço SshBroker e SshProxy na inicialização. Eles bloqueiam o túnel ssh do Linux para o Windows. Você pode interromper esses serviços em Gerenciador de Tarefas -> Serviços, após o qual tudo funcionará novamente.
fonte
Uma opção que você tem ao entrar no terminal> Executar> Depurar> Editar Configurações
selecione o ambiente conda apropriado. Além disso, quando você cria um novo projeto - ele pede para configurar este local.
fonte