Вопрос-Ответ

How do I find the location of my Python site-packages directory?

Как мне найти расположение каталога пакетов сайта Python?

Как мне найти местоположение моего site-packages каталога?

Переведено автоматически
Ответ 1

Существует два типа каталогов site -packages: глобальные и для каждого пользователя.


  1. Глобальные каталоги site-packages ("dist-пакеты") перечислены в sys.path при запуске:


     python -m site

    Для получения более краткого списка запустите getsitepackages из модуля сайта в коде Python:


     python -c 'import site; print(site.getsitepackages())'

    Внимание: В виртуальных средах getsitepackages недоступен с более старыми версиями virtualenv, sys.path однако выше будет указан каталог site-packages virtualenv правильно. В Python 3 вы можете использовать модуль sysconfig вместо этого:


     python3 -c 'import sysconfig; print(sysconfig.get_paths()["purelib"])'


  2. В каталоге site -packages для каждого пользователя (PEP 370) Python устанавливает ваши локальные пакеты:


     python -m site --user-site

    Если это указывает на несуществующий каталог, проверьте состояние выхода Python и смотрите python -m site --help пояснения.


    Подсказка: При запуске pip list --user or pip freeze --user выдается список всех установленных для каждого пользователя site-packages.




Практические советы


  • <package>.__path__ позволяет определить местоположение определенного пакета: (подробности)


      $ python -c "import setuptools as _; print(_.__path__)"
    ['/usr/lib/python2.7/dist-packages/setuptools']


  • <module>.__file__ позволяет определить местоположение определенного модуля: (разница)


      $ python3 -c "import os as _; print(_.__file__)"
    /usr/lib/python3.6/os.py


  • Запустите pip show <package>, чтобы отобразить информацию о пакете в стиле Debian:


      $ pip show pytest
    Name: pytest
    Version: 3.8.2
    Summary: pytest: simple powerful testing with Python
    Home-page: https://docs.pytest.org/en/latest/
    Author: Holger Krekel, Bruno Oliveira, Ronny Pfannschmidt, Floris Bruynooghe, Brianna Laugher, Florian Bruhin and others
    Author-email: None
    License: MIT license
    Location: /home/peter/.local/lib/python3.4/site-packages
    Requires: more-itertools, atomicwrites, setuptools, attrs, pathlib2, six, py, pluggy


Ответ 2
>>> import site; site.getsitepackages()
['/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages']

(или просто первый элемент с site.getsitepackages()[0])

Ответ 3

Решение, которое:


  • за пределами virtualenv - предоставляет путь к глобальным site-packages,

  • внутри virtualenv - предоставляет пакеты сайта virtualenv

... это однострочный:

python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())"

Отформатирован для удобства чтения (а не используется как однострочный), который выглядит следующим образом:

from distutils.sysconfig import get_python_lib
print(get_python_lib())


Источник: очень старая версия документации "Как установить Django" (хотя это полезно не только для установки Django)

Ответ 4

Для Ubuntu,

python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"

... неверно.

Он укажет вам на /usr/lib/pythonX.X/dist-packages

Эта папка содержит только пакеты, автоматически установленные вашей операционной системой для запуска программ.

В ubuntu папка site-packages, содержащая пакеты, установленные через setup_tools \easy_install \ pip, будет находиться в /usr/local/lib/pythonX.X/dist-packages

Вторая папка, вероятно, более полезна, если вариант использования связан с установкой или чтением исходного кода.

Если вы не используете Ubuntu, вы, вероятно, безопасно копируете первое поле кода в терминал.

2023-04-24 20:11 python