Ответ 1
Да, это другое, в CentOS 5.6, например, внешние модули python помещаются в /usr/lib/python2.6/site-packages
. Фактически dist-packages
специфичный для debian каталог.
В моем вопросе предполагается, что вы используете одни и те же версии python для разных дистрибутивов Linux. Я также исключаю виртуальные среды из моего вопроса.
Я использую дистрибутив Ubuntu на основе Debian. Там путь к стандартной библиотеке python (модули/пакеты, написанные на python) равен /usr/lib/python2.7
. Путь к "внешним" пакетам python - /usr/local/lib/python2.7/dist-packages
.
Системный независимый способ получения этих путей очень ценится.
Я нашел:
>>> from distutils.sysconfig import get_python_lib
>>> print get_python_lib()
/usr/local/lib/python2.7/dist-packages
и
>>> print get_python_lib(standard_lib=True)
/usr/lib/python2.7
Я думаю, что подход в первом редактировании устарел, поскольку я могу только найти это и до тех пор, пока не будут представлены документы python2.5. Новый подход (в 2.7 документах):
>>> import sysconfig
>>> sysconfig.get_path_names()
('stdlib', 'platstdlib', 'purelib', 'platlib', 'include', 'scripts', 'data')
>>> print sysconfig.get_path('platlib')
/usr/local/lib/python2.7/dist-packages
Я еще не нашел, как найти /usr/lib/python2.7
с помощью sysconfig. Пока я буду работать с устаревшим подходом и исходить из предположения, что это даст желаемые результаты.
Да, это другое, в CentOS 5.6, например, внешние модули python помещаются в /usr/lib/python2.6/site-packages
. Фактически dist-packages
специфичный для debian каталог.
Вы можете больше узнать об этом здесь http://www.aosabook.org/en/packaging.html, $ он говорит о местах упаковки и библиотеке, если мы хотим развернуть пакет в репозиторий программного обеспечения.
Я немного об этом рассказал в своем блоге, пожалуйста, взгляните и дайте мне несколько отзывов
http://insidepython.wordpress.com/2012/08/03/quickintro/
Приветствия