Каталог site-packagesзгадується в різних статтях, пов'язаних з Python. Що це? Як ним користуватися?
Каталог site-packagesзгадується в різних статтях, пов'язаних з Python. Що це? Як ним користуватися?
Відповіді:
site-packages- цільовий каталог вручну побудованих пакетів Python. Коли ви будуєте та встановлюєте пакети Python з джерела (використовуючи distutils , можливо, виконуючи виконання python setup.py install), ви знайдете встановлені модулі site-packagesза замовчуванням.
Є стандартні локації:
prefix/lib/pythonX.Y/site-packagesexec-prefix/lib/pythonX.Y/site-packagesprefix\Lib\site-packages1 Чисто означає, що модуль використовує лише код Python. Нечисті можуть також містити код C / C ++.
site-packagesза замовчуванням є частиною шляху пошуку Python , тому встановлені там модулі можна легко імпортувати згодом.
lib64!
/usr/lib/python3.6?
Коли ви використовуєте --userопцію з pip , пакет встановлюється в папку користувача замість глобальної папки, і вам не потрібно буде запускати команду pip з правами адміністратора.
Розташування папки пакунків користувачів можна знайти за допомогою:
python -m site --user-site
Це надрукує щось на кшталт:
C:\Users\%USERNAME%\AppData\Roaming\Python\Python35\site-packages
Якщо ви не використовуєте --userопцію з pip , пакет встановлюється в глобальну папку, задану:
python -c "import site; print(site.getsitepackages())"
Це надрукує щось на кшталт:
['C:\\Program Files\\Anaconda3', 'C:\\Program Files\\Anaconda3\\lib\\site-packages'
Примітка. Вище надруковані значення призначені для Windows 10 з встановленою Anaconda 4.x із замовчуванням.
site-пакети - це лише місце, де Python встановлює свої модулі.
Не потрібно "знаходити його", пітон знає, де його знайти сам, це місце завжди є частиною ПІТОНПАТУ (sys.path).
Програмно ви можете знайти його таким чином:
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, і це підвищить StopIteration. Наприклад, Debian (і Ubuntu) повинні dist-packagesвстановити свої розподілені модулі.
/usr/local/lib/python3.6/site-packagesна ubuntu