Dizin site-packages, Python ile ilgili çeşitli makalelerde belirtilmiştir. Bu ne? Bu nasıl kullanılır?
Dizin site-packages, Python ile ilgili çeşitli makalelerde belirtilmiştir. Bu ne? Bu nasıl kullanılır?
Yanıtlar:
site-packagesolan hedef dizin elle inşa Python paketleri. Python paketlerini kaynaktan oluşturup kurduğunuzda ( dağıtımları kullanarak , muhtemelen çalıştırarak python setup.py install), kurulu modülleri site-packagesvarsayılan olarak bulacaksınız .
Standart yerler vardır:
prefix/lib/pythonX.Y/site-packagesexec-prefix/lib/pythonX.Y/site-packagesprefix\Lib\site-packages1 Pure , modülün yalnızca Python kodunu kullandığı anlamına gelir. Saf olmayan , C / C ++ kodunu da içerebilir.
site-packagesvarsayılan olarak Python arama yolunun bir parçasıdır , bu nedenle orada kurulan modüller daha sonra kolayca içe aktarılabilir.
lib64!
/usr/lib/python3.6?
--userPip ile seçeneği kullandığınızda , paket genel klasör yerine kullanıcının klasörüne yüklenir ve yönetici ayrıcalıklarıyla pip komutunu çalıştırmanız gerekmez.
Kullanıcının paketler klasörünün konumu şu şekilde bulunabilir:
python -m site --user-site
Bu, aşağıdaki gibi bir şey yazdıracaktır:
C:\Users\%USERNAME%\AppData\Roaming\Python\Python35\site-packages
--userPip ile seçeneği kullanmadığınızda , paket şu şekilde verilen genel klasöre yüklenir:
python -c "import site; print(site.getsitepackages())"
Bu, aşağıdaki gibi bir şey yazdıracaktır:
['C:\\Program Files\\Anaconda3', 'C:\\Program Files\\Anaconda3\\lib\\site-packages'
Not: Yukarıdaki yazdırılan değerler, varsayılan olarak yüklenmiş Anaconda 4.x ile Windows 10 için geçerlidir.
site paketleri, Python'un modüllerini kurduğu konumdur.
"Bulmaya" gerek yok, python kendi başına nerede bulacağını bilir, bu konum her zaman PYTHONPATH'ın (sys.path) bir parçasıdır.
Programlı olarak şu şekilde bulabilirsiniz:
import sys
site_packages = next(p for p in sys.path if 'site-packages' in p)
print site_packages
'/Users/foo/.envs/env1/lib/python2.7/site-packages'
site-packagesve bu artacaktır StopIteration. Örneğin, Debian (ve Ubuntu) dist-packagesdağıtılmış modüllerini kurmalıdır.
/usr/local/lib/python3.6/site-packagesubuntu'da oldu