Isso porque o .
( source
) é um comando específico do shell, ou seja, específico do shell, não externo. Você precisa executá-lo dentro do shell; Sem o shell, gnome-terminal
está tentando executar um comando literal .
com /path/to/virtualenv/bin/activate
como seu argumento, levando ao erro de permissão do denier.
Você precisa gerar um shell interativo para fazer o sourcing e gerar outro shell interativo depois:
gnome-terminal -e 'bash -ic ". /path/to/virtualenv/bin/activate && bash"'
Ao tentar iniciar um ambiente virtual, convém definir a opção --rcfile
, abordagem mais limpa, mas a ressalva óbvia é que os arquivos de inicialização de sessão comuns /etc/bash.bashrc
e ~/.bashrc
não são lidos:
gnome-terminal -e 'bash --rcfile /path/to/virtualenv/bin/activate'