AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / ubuntu / Perguntas / 1542360
Accepted
PeterDz
PeterDz
Asked: 2025-02-25 23:52:12 +0800 CST2025-02-25 23:52:12 +0800 CST 2025-02-25 23:52:12 +0800 CST

Manipulando vários pacotes interdependentes em ambientes virtuais

  • 772

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.

package-management
  • 1 1 respostas
  • 34 Views

1 respostas

  • Voted
  1. Best Answer
    David Z
    2025-02-26T05:14:12+08:002025-02-26T05:14:12+08:00

    Pelo que entendi da discussão, preciso instalar ambos em venvs separados porque eles são externos.

    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.

    $ python3 -m venv jupyter-venv
    $ jupyter-venv/bin/python -m pip install jupyter astropy [...]
    

    (sinta-se à vontade para substituir jupyterse jupyterlabquiser 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

    $ pipx install jupyter
    

    Então você pode "injetar" astropy ou qualquer outro pacote naquele venv executando

    $ pipx inject jupyter astropy
    

    (novamente, sinta-se à vontade para substituir jupyterpor jupyterlabse 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:

    • Um para o servidor web, onde você instala jupyterou jupyterlab(e se você estiver usando pipx, este é o que você obterá ao executar pipx install jupyter/ pipx install jupyterlab)
    • Outro venv separado onde você instala astropye outros pacotes que deseja usar em cálculos

    Entã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.

    • 1

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Existe um comando para listar todos os usuários? Também para adicionar, excluir, modificar usuários, no terminal?

    • 9 respostas
  • Marko Smith

    Como excluir um diretório não vazio no Terminal?

    • 4 respostas
  • Marko Smith

    Como descompactar um arquivo zip do Terminal?

    • 9 respostas
  • Marko Smith

    Como instalo um arquivo .deb por meio da linha de comando?

    • 11 respostas
  • Marko Smith

    Como instalo um arquivo .tar.gz (ou .tar.bz2)?

    • 14 respostas
  • Marko Smith

    Como listar todos os pacotes instalados

    • 24 respostas
  • Martin Hope
    Flimm Como posso usar o docker sem sudo? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    led-Zepp Como faço para salvar a saída do terminal em um arquivo? 2014-02-15 11:49:07 +0800 CST
  • Martin Hope
    ubuntu-nerd Como descompactar um arquivo zip do Terminal? 2011-12-11 20:37:54 +0800 CST
  • Martin Hope
    TheXed Como instalo um arquivo .deb por meio da linha de comando? 2011-05-07 09:40:28 +0800 CST
  • Martin Hope
    Ivan Como listar todos os pacotes instalados 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    David Barry Como determino o tamanho total de um diretório (pasta) na linha de comando? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher "Os seguintes pacotes foram retidos:" Por que e como resolvo isso? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford Como os PPAs podem ser removidos? 2010-07-30 01:09:42 +0800 CST

Hot tag

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve