Estou procurando uma maneira de criar um virtualenv que conterá apenas algumas bibliotecas (que eu escolhi) da instalação do python base.
Para ser mais concreto, estou tentando importar meu matplotlib para o virtualenv durante a criação do virtualenv. Ele não pode ser instalado eficientemente com o pip ou o easy_install, pois falta algumas bibliotecas do compilador fortran. O jeito que eu fiz até agora era copiar manualmente de
/usr/lib/python2.7/dist-packages/ to virtualenv_name/lib/python2.7/dist-packages/
no entanto, isso impede que os links importados manualmente sejam registrados pelo yolk (que imprime todas as bibliotecas atualmente disponíveis no virtualenv).
Portanto, existe uma maneira de fazer uma variante seletiva do
virtualenv --system-site-packages
python
virtualenv
TheMeaningfulEngineer
fonte
fonte
--system-site-packages
. As respostas sugerem o uso não seletivo--system-site-packages
e a instalação excessiva de alguns pacotes localmente, o que é diferente e tem implicações diferentes.Respostas:
Crie o ambiente com
virtualenv --system-site-packages
. Em seguida, ative o virtualenv e, quando quiser, coisas instaladas no virtualenv, e não no python do sistema, usepip install --ignore-installed
oupip install -I
. Dessa forma, o pip instalará o que você solicitou localmente, mesmo que exista uma versão do sistema. Seu interpretador python procurará primeiro no diretório de pacotes do virtualenv, portanto esses pacotes devem sombrear os globais.fonte
no-global-site-packages
ativado. Mas, por alguma razão, não sei se havia um pacote que estava sendo usado no sistema global. Usarpip install -I
o pacote de dentro do virtualenv não funcionou. Finalmente, desinstalei temporariamente o pacote do virtualenv e do sistema global. Depois, instalei-o novamente no virtualenv e no sistema (nessa ordem). Então agora funciona bem.Você pode usar
--system-site-packages
e, em seguida, "overinstall" o material específico para o seu virtualenv. Dessa forma, tudo o que você instala no seu virtualenv será retirado de lá, caso contrário, será retirado do seu sistema.fonte
Instale o ambiente virtual com
E use
pip install -U to install matplotlib
fonte
Você pode usar
virtualenv --clear
. que não instala nenhum pacote, instale os que você deseja.fonte