Dağıtım paketleri ve site paketleri arasındaki fark nedir?


243

Python paketi yükleme işleminden biraz etkileniyorum. Özellikle, dağıtım paketleri dizinine ve site paketleri dizinine kurulan paketler arasındaki fark nedir?

Yanıtlar:


226

dist-Packages, Ubuntu gibi türevlerinde de bulunan Debian'a özgü bir sözleşmedir. Debian paket yöneticisinden bu konuma geldiklerinde modüller dağıtım paketlerine kurulur:

/usr/lib/python2.7/dist-packages

Yana easy_installve pippaket yöneticisinden yüklenir, onlar da dist-paketleri kullanmak, ama burada paketleri koyun:

/usr/local/lib/python2.7/dist-packages

Gönderen Debian Python Wiki :

site paketleri yerine dağıtım paketleri. Debian paketlerinden kurulan üçüncü taraf Python yazılımı site paketlerine değil dağıtım paketlerine gider. Bu, sistem Python ile manuel olarak kurabileceğiniz herhangi bir kaynaktan Python derlemesi arasındaki çakışmayı azaltmak içindir.

Bu, Python'u kaynaktan manuel olarak kurarsanız site paketleri dizinini kullanacağı anlamına gelir. Bu, özellikle Debian ve Ubuntu birçok sistem yardımcı programı için Python'un sistem sürümüne güvendiği için iki kurulumu ayrı tutmanıza olanak tanır.


22
Bu doğru mu ?! Pip ile kurarım ve dağıtım paketlerine gider. (Deb Squeeze + Py 2.6'da)
Basel Shishani

4
Benim için de aynı. Pip veya easy_install ile kurulan paketlerin tümü dist paketlerine gider.
monostop

1
Aynı şekilde, tüm bu kurulumları kaldırırsam herhangi bir sorunla karşılaşır mıyım?
Mohamed Turki

1
Debian 6.0.10 için aynı dizinler (hala Python 2.6'da).
ᴠɪɴᴄᴇɴᴛ

2
Pip ile virtualenv kullanırsanız, pip site paketleri dizinine paketleri yükler .
diabloneo

4

dist-packagesaptve arkadaşlarının eşyalarını yüklediği debian'a özgü bir dizindir ve site-packagesstandartpip dizindir.

Sorun şu - farklı paketlerde aynı paketin farklı sürümleri mevcutsa ne olur?

Soruna benim çözümüm dist-packagesbir symlink yapmaktır 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

(gnu araçlarını kullanmıyorsanız, -vseçeneği kaldırın ).


1
Sorunun bir açıklama gerektirdiği için çözümünüzle ilgili hangi sorunu çözdüğünüz konusunda biraz kafam karıştı
Jürgen K.

@ JürgenK .: benim için sorun, farklı dizinlerde farklı versiyonlar olduğunda hangi paketin kullanıldığıydı.
sds
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.