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

Учитывая объект PasswordState, который реализует Serializable во всем дереве объектов, вы можете передать этот объект в работу пыльника, как в:

private void launchManagePassword() {
    Intent i= new Intent(this, ManagePassword.class); // no param constructor
    PasswordState outState= new PasswordState(lengthKey,timeExpire,isValidKey,timeoutType,"",model.getIsHashPassword());
    Bundle b= new Bundle();
    b.putSerializable("jalcomputing.confusetext.PasswordState", outState);
    i.putExtras(b);
    startActivityForResult(i,REQUEST_MANAGE_PASSWORD); // used for callback
}
805
задан Daryl Spitzer 23 September 2008 в 17:04
поделиться

5 ответов

from distutils.sysconfig import get_python_lib
print get_python_lib()
8
ответ дан Florian Bösch 23 September 2008 в 17:04
поделиться

Дополнительное примечание к get_python_lib функция, упомянутая уже: на некоторых платформах различные каталоги используются для платформы определенные модули (например: модули, которые требуют компиляции). Если Вы передаете plat_specific=True функции, Вы получаете пакеты сайта для платформы определенные пакеты.

9
ответ дан Armin Ronacher 23 September 2008 в 17:04
поделиться

Как другие отметили, distutils.sysconfig имеет соответствующие настройки:

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

..., хотя значение по умолчанию site.py делает что-то немного более сырое, перефразируемое ниже:

import sys, os
print os.sep.join([sys.prefix, 'lib', 'python' + sys.version[:3], 'site-packages'])

(это также добавляет ${sys.prefix}/lib/site-python и добавляет оба пути для sys.exec_prefix также, должен что постоянный отличаться).

Однако каков контекст? Вы не должны смешивать с Вашим site-packages непосредственно; setuptools/distutils будет работать на установку, и Ваша программа может работать в virtualenv, где Ваш pythonpath абсолютно локален для пользователя, таким образом, это не должно принимать использование системных пакетов сайта непосредственно также.

22
ответ дан Charles Duffy 23 September 2008 в 17:04
поделиться

От , "Как Установить Django" документация (хотя это полезно для больше, чем просто установки Django) - выполняют следование из оболочки:

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

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

from distutils.sysconfig import get_python_lib
print(get_python_lib())
307
ответ дан njwilson 23 September 2008 в 17:04
поделиться

Примечание: предлагаемое решение ( distutils.sysconfig.get_python_lib () ) не работает, когда существует более одного каталога пакетов сайтов (как ] рекомендовано этой статьей ). Он вернет только основной каталог site-packages.

Увы, лучшего решения у меня тоже нет. Python, похоже, не отслеживает каталоги пакетов сайтов, только пакеты в них.

12
ответ дан 22 November 2019 в 21:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: