Der Installationsprozess für das Python-Paket hat mich etwas gestört. Was ist der Unterschied zwischen Paketen, die im Verzeichnis dist-packages installiert sind, und dem Verzeichnis site-packages?
dist-packages ist eine Debian-spezifische Konvention, die ebenso wie Ubuntu in ihren Derivaten enthalten ist. Module werden in dist-packages installiert, wenn sie vom Debian-Paketmanager an diesen Speicherort kommen:
/usr/lib/python2.7/dist-packages
Da easy_install
und pip
vom Paketmanager installiert werden, verwenden sie auch dist-packages, setzen jedoch Pakete hier:
/usr/local/lib/python2.7/dist-packages
Aus dem Debian Python Wiki :
dist-packages statt site-packages. Python-Software von Drittanbietern Die Installation von Debian-Paketen geht in dist-packages, nicht in Site-Pakete. Dies dient dazu, Konflikte zwischen dem System Python, .__ zu reduzieren. und alle Python-Builds aus Quellen, die Sie manuell installieren können.
Das heißt, wenn Sie Python manuell von der Quelle installieren, wird das Verzeichnis site-packages verwendet. Dadurch können Sie die beiden Installationen voneinander trennen, zumal sich Debian und Ubuntu für viele Systemprogramme auf die Systemversion von Python verlassen.
Meine Lösung für das Problem ist, dist-packages
einen Symlink zu site-packages
zu machen:
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
(Wenn Sie keine gnu-Tools verwenden, entfernen Sie die Option -v
).