Direktori site-packagestersebut disebutkan dalam berbagai artikel terkait Python. Apa itu? Bagaimana cara menggunakannya?
Direktori site-packagestersebut disebutkan dalam berbagai artikel terkait Python. Apa itu? Bagaimana cara menggunakannya?
Jawaban:
site-packagesadalah direktori target paket Python yang dibuat secara manual. Saat Anda membangun dan menginstal paket Python dari sumber (menggunakan distutils , mungkin dengan mengeksekusi python setup.py install), Anda akan menemukan modul yang diinstal site-packagessecara default.
Ada lokasi standar:
prefix/lib/pythonX.Y/site-packagesexec-prefix/lib/pythonX.Y/site-packagesprefix\Lib\site-packages1 Pure artinya modul hanya menggunakan kode Python. Tidak murni dapat berisi kode C / C ++.
site-packagessecara default merupakan bagian dari jalur pencarian Python , sehingga modul yang diinstal di sana dapat diimpor dengan mudah setelahnya.
lib64!
/usr/lib/python3.6?
Saat Anda menggunakan --useropsi dengan pip , paket akan diinstal di folder pengguna, bukan di folder global, dan Anda tidak perlu menjalankan perintah pip dengan hak istimewa admin.
Lokasi folder paket pengguna dapat ditemukan menggunakan:
python -m site --user-site
Ini akan mencetak sesuatu seperti:
C:\Users\%USERNAME%\AppData\Roaming\Python\Python35\site-packages
Jika Anda tidak menggunakan --useropsi dengan pip , paket akan diinstal di folder global yang diberikan oleh:
python -c "import site; print(site.getsitepackages())"
Ini akan mencetak sesuatu seperti:
['C:\\Program Files\\Anaconda3', 'C:\\Program Files\\Anaconda3\\lib\\site-packages'
Catatan: Nilai yang dicetak di atas adalah untuk Di Windows 10 dengan Anaconda 4.x diinstal dengan default.
paket situs hanyalah lokasi tempat Python menginstal modulnya.
Tidak perlu "menemukannya", python tahu di mana menemukannya dengan sendirinya, lokasi ini selalu menjadi bagian dari PYTHONPATH (sys.path).
Secara terprogram Anda dapat menemukannya dengan cara ini:
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-packages, dan ini akan meningkat StopIteration. Misalnya, Debian (dan Ubuntu) harus dist-packagesmenginstal modul terdistribusi mereka.
/usr/local/lib/python3.6/site-packagesdi ubuntu