Respostas:
dist-packages é uma convenção específica do Debian que também está presente em seus derivados, como o Ubuntu. Os módulos são instalados nos dist-packages quando eles vêm do gerenciador de pacotes Debian para este local:
/usr/lib/python2.7/dist-packages
Desde easy_install
e pip
são instalados a partir do gerenciador de pacotes, eles também usam dist-packages, mas colocam pacotes aqui:
/usr/local/lib/python2.7/dist-packages
No Wiki do Debian Python :
dist-packages em vez de site-packages. O software Python de terceiros instalado nos pacotes Debian entra em dist-packages, não em site-packages. Isso é para reduzir o conflito entre o Python do sistema e qualquer compilação Python de origem que você possa instalar manualmente.
Isso significa que, se você instalar manualmente o Python a partir da fonte, ele usará o diretório site-packages. Isso permite que você mantenha as duas instalações separadas, especialmente porque o Debian e o Ubuntu dependem da versão do sistema do Python para muitos utilitários do sistema.
dist-packages
é o diretório específico do debian onde os apt
amigos instalam seus itens e site-packages
é o pip
diretório padrão .
O problema é - o que acontece quando diferentes versões do mesmo pacote estão presentes em diretórios diferentes?
Minha solução para o problema é fazer dist-packages
um link simbólico para site-packages
:
for d in $(find $WORKON_HOME -type d -name dist-packages); do
pushd $d
cd ..
if test -d dist-packages/__pycache__; then
mv -v dist-packages/__pycache__/* site-packages/__pycache__/
rmdir -v dist-packages/__pycache__
fi
mv -v dist-packages/* site-packages/
rmdir -v dist-packages
ln -sv site-packages dist-packages
popd
done
(se você não estiver usando ferramentas gnu, remova a -v
opção).