Estou executando o Arch Linux e quero usar ambientes virtuais para instalar apenas alguns dos pacotes PIP que uso em projetos específicos enquanto continuo usando os pacotes do Arch para Python. No entanto, quando eu faço um novo VENV que usa o argumento --system-site-packages
(para acessar os pacotes Python base do Arch), o novo VENV não é um espelho completo do ambiente não-VENV.
Como eu testei isso:
pip freeze
da minha instalação atual de Python dos pacotes do Arch .
Criado um ambiente virtual, venv
$mkvirtualenv --system-site-packages venv
Criado um segundo pip freeze
de dentro do setor ativo
Compare usando diff
Eu esperava que o diff fosse o mesmo, mas existem inúmeras diferenças.
Eu acredito que todos os pacotes relacionados a Python e foram instalados com pacman
. Tenho certeza de que todos os pacotes principais (iPython, Numpy, Pandas, Jupyter, Matplotlib, etc.) foram instalados com o gerenciador de pacotes pacman
do Arch. Como eu não instalei o sistema ontem, certamente é possível , ao longo do tempo, usei o PIP para alguns pacotes, mas a regra que segui é usar o pacman
pacotes instalados para aproveitar a incompatibilidade da comunidade Arch (incompatível com alguma combinação de pacotes Github, PiP e Arch).
Como posso solucionar o problema de pacotes diferentes no meu VENV usando o argumento --system-site-packages
?
NOTA. Esta questão pode estar indo na direção errada se eu não entender como o argumento --system-site-packages
funciona. Nesse caso, a pergunta deve ser, Por que o --system-site-packages
argument não cria um espelho duplicado dos pacotes Python do meu sistema?
Tags python virtualenv arch-linux