Установка библиотеки python в пользовательское расположение?

#python #django #installation

#python #django #установка

Вопрос:

Я хочу использовать пару сторонних пакетов django для своего приложения. Итак, я хочу установить каждый пакет локально для этого приложения (или всего моего проекта).

Пользовательские инструкции по установке python выглядят немного пугающе — как мне сделать это как можно проще?

Ответ №1:

Вы можете просто поместить библиотечный модуль в папку вашего проекта, потому что ваша папка проекта будет автоматически находиться в PYTHONPATH при запуске через manage.py runserver или ваш скрипт wsgi укажет на него при запуске в рабочей среде.

Обычно все пакеты python упаковываются следующим образом:

 package directory
    module directory
    ... other files/dirs like README, Manifest and so on
  

В папке вашего проекта Django должна находиться только module directory часть из приведенного выше примера, а не остальная часть пакета.

Комментарии:

1. @Torsen — Спасибо за хороший ответ. Прямо сейчас python для меня просто еще один язык, и 1) Я хочу научиться взламывать, 2) Я хочу взламывать так, как задумывали создатели django / python, и 3) Я хочу совершенствоваться и учиться.

2. @Dizzley — Хорошо, но, пожалуйста, также рассмотрите ответ Дэниела Роузмана ниже. Я бы сказал, что это более распространенный и чистый способ, чем помещение всех необходимых модулей в папку проекта.

Ответ №2:

Используйте virtualenv.

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

Комментарии:

1. virtualenv может создать для вас закрытую среду python. Это означает, что, например, пакеты python, установленные в вашей системе PYTHONPATH, не повлияют на установку python и программ в вашем virtualenv. Преимущество заключается, например, в том, что для каждого из ваших проектов django вы можете установить разные зависимости в их соответствующем virtualenv, и они не будут влиять друг на друга. Это также включает в себя различные версии Django. Проверьте virtualenv.org/en/latest/index.html

2. Тогда голосуем за virtualenv. Изоляция имеет ряд преимуществ: ваши приложения не мешают друг другу; вы защищены от общесистемных изменений; система защищена от вас. Я подозреваю, что есть обратная сторона: фрагментация дизайна и реализации и т.д.

Ответ №3:

Просто используйте --home — ничего страшного в этом нет.

Однако не забудьте высказать здесь свою PYTHONPATH точку зрения.

Комментарии:

1. Я мог бы поэкспериментировать с установкой пакета таким образом.