Atualizei recentemente (hã!!) para a versão 24.04.2 LTS e estou tentando fazer com que ele se comporte como meu 22.04 costumava fazer.
Tenho lido muitas discussões sobre o que fazer se você encontrar mensagens de "ambiente gerenciado externamente", particularmente https://stackoverflow.com/questions/75608323/how-do-i-solve-error-externally-managed-environment-every-time-i-use-pip-3
Pelo que entendi, a recomendação atual é usar para executar esse pacote criando um ambiente virtual usando python3 -m venv .A
, onde A é o nome do venv.
No entanto, tenho vários pacotes externos que preciso instalar. No sistema antigo, eles eram instalados separadamente em todo o sistema e "falavam entre si".
Um caso particular (mas não o único) é astropy e Jupyter. Eu uso astropy standalone, assim como uso notebooks Jupyter contendo astropy. Eu também uso Jupyter para outras coisas também. Ambos agora estão marcados como "gerenciados externamente".
Pelo que entendi da discussão, preciso instalar ambos em venvs separados porque eles são externos. Preciso de uma cópia de ambos em cada venv, ou há alguma maneira de acessá-los de forma cruzada? ... e um python3 separado para cada um? e, claro, uma movimentação massiva de arquivos. Deve haver outra maneira - isso é muito desajeitado! e certamente é muito ineficiente e usa muita memória!
Procurei em todos os lugares, nos fóruns e em outros lugares, mas sem sucesso.
Isso não está correto. Pacotes que precisam "falar uns com os outros" geralmente devem ser instalados no mesmo venv; no seu caso, você vai querer um ambiente virtual que contenha Jupyter e astropy, e quaisquer outros pacotes que você queira usar com Jupyter.
(sinta-se à vontade para substituir
jupyter
sejupyterlab
quiser a interface mais recente do JupyterLab)Neste caso em particular, você pode gostar de usar pipx , que é uma ferramenta que lida com a instalação e o gerenciamento de aplicativos Python (programas que você pode executar) para você. Como o Jupyter. Você instala o pipx apenas uma vez e, em seguida, pode fazê-lo criar um novo venv e instalar o Jupyter naquele venv executando
Então você pode "injetar" astropy ou qualquer outro pacote naquele venv executando
(novamente, sinta-se à vontade para substituir
jupyter
porjupyterlab
se desejar)Vale mencionar que o Jupyter é um caso um pouco especial entre os pacotes Python porque ele tem a capacidade de usar um interpretador Python totalmente diferente daquele que foi usado para instalá-lo. Então, se você quisesse, poderia criar dois (ou mais) venvs separados:
jupyter
oujupyterlab
(e se você estiver usando pipx, este é o que você obterá ao executarpipx install jupyter
/pipx install jupyterlab
)astropy
e outros pacotes que deseja usar em cálculosEntão você teria que configurar seu aplicativo web Jupyter para usar o interpretador Python do outro venv como um kernel. Esta é uma das poucas situações em que você pode ter diferentes venvs "falando" entre si, em algum sentido limitado. Mas tenha em mente que alguém teve que escrever um bom pedaço de código para fazer o Jupyter fazer isso. Não é típico que você possa ter diferentes venvs interagindo entre si dessa forma.