ipython vs ~ / .local / bin / ipython

0

Acredito que desde que instalei o IPython Notebook via pip --user agora tenho duas instâncias de cada um dos módulos Python, IPython e outros módulos Python: as instâncias originais que vieram com o meu sistema Ubuntu e as novas instâncias locais instaladas pelo pip.

$ which ipython
/usr/bin/ipython

$ cat /usr/bin/ipython
from IPython import start_ipython    
start_ipython()

As duas maneiras de chamar o ipython ( ipython e ~/.local/bin/ipython ) são equivalentes?

    
por Valentas 03.12.2014 / 08:23

2 respostas

0

Não, o IPythons não é uma versão do Python, mas um par de utilitários para o Python. Principalmente um shell de comando melhorado e o notebook. Mas você está usando sua instalação normal em python.

Você pode instalar o Ipython com sua própria versão contida do python, mas isso não é o que o pip faz por padrão.

O Pip pode instalar pacotes localmente se você der a opção -user, se você fez isso, então você ainda tem apenas uma instalação do python, mas com bibliotecas diferentes para usuários diferentes.

Finalmente, se você estiver chamando-o com ~/.local/bin/ipython , provavelmente executará a versão em nível de usuário do ipython, em vez da versão em nível de sistema (se você tiver ambos instalados). Se for executado a mesma coisa ou um diferente do que digitar 'ipython' depende do seu caminho.

    
por Javier Rivera 04.12.2014 / 08:57
0
% bl0ck_qu0te%

Resposta curta: não, eles não são equivalentes . Agora vamos ver o porquê:

O Pip pode instalar pacotes no diretório pessoal do usuário, se você usá-lo com a opção --user , como você fez. Quando você fizer isso, ele instala o pacote em ~/.local (note que esse caminho relativo é expandido para algo como /home/username/.local ), no entanto, você ainda tem apenas um intérprete global de Python em /usr/bin/python . Isso faz com que as bibliotecas ou módulos diferentes que você instala estejam acessíveis apenas localmente, o que significa que eles não são compartilhados entre os usuários.

Se você chamar qualquer programa com um caminho relativo ou absoluto, ele executará o executável que estiver localizado no final desse caminho, se existir. Nesse caso, o caminho relativo ~/.local/bin/ipython aponta para uma instância local do IPython.

Quando você chama um executável digitando apenas seu nome, como ipython a variável de ambiente PATH é usado para determinar o que executar. Então, o que realmente é executado dependerá de sua precedência em seu PATH. Isso pode ou não ser o mesmo executável que aquele localizado em ~/.local/bin/ipython .

Use o comando which para verificar qual executável será lançado se você digite apenas o nome de um comando: which ipython . Isso lhe dará o caminho para isso.

Além disso, se você já estiver instalando pacotes localmente, em vez de usar todo o sistema, sugiro usar ambientes virtuais, facilitará a sua vida (na maior parte do tempo), dê virtualenv ou venv a try.

    
por Samuel Santana 22.03.2017 / 01:01