Как установить модули Python / Django? - PullRequest
14 голосов
/ 01 декабря 2011

Я абсолютно ничего не знаю о Django, но мне нужно, чтобы существующий проект работал в OSX.

Из каталога проекта я запускаю python manage.py runserver и получаю ошибку: Error: No module named cms.

Похоже, константа INSTALLED_APPS (в settings.py) определяет требуемые модули ... но как мне установить эти вещи?

Существует ли стандартный способ массовой установки зависимостей (например, Ruby's Bundler)?

Ответы [ 3 ]

23 голосов
/ 01 декабря 2011

вы можете установить все зависимости за один раз, если есть файл require.txt!вам просто нужно выполнить следующую команду:

pip install -r requirements.txt

в противном случае вы можете установить одну за другой:

pip install django-cms

Вот документация PIP: http://pypi.python.org/pypi/pip

если вы привыкли к ruby, вы можете сравнить с ruby ​​GEM

7 голосов
/ 01 декабря 2011

Записи в INSTALLED_APPS являются обозначениями упаковки. Пакеты - это способ структурирования пространства имен модуля Python.

При импорте пакета Python просматривает каталоги в sys.path в поисках подкаталога пакета.

Итак, в python есть несколько мест для поиска пакетов.

Чтобы установить пакеты по именам в нужное место в вашей системе, вы можете загрузить некоторый исходный код на python и запустить скрипт setup.py (обычно предоставляемый библиотеками и приложениями).

$ cd /tmp
$ wget http://pypi.python.org/packages/source/p/pytz/pytz-2011n.tar.bz2
$ tar xvfj pytz-2011n.tar.bz2
$ cd pytz-2011n
$ python setup.py install

Тем не менее, существуют сокращения, а именно easy_install и его преемник pip . С помощью этих инструментов установка стороннего пакета (или приложения django) сводится к следующему:

$ pip install pytz

Или, если вы используете системную установку Python по умолчанию:

$ sudo pip install pytz

Вот и все. Теперь вы можете использовать эту библиотеку, где хотите. Чтобы проверить, правильно ли он установлен, попробуйте в консоли:

$ python
Python 2.7.2 (default, Aug 20 2011, 05:03:24)
...
>>> import pytz # you would get an ImportError, if pytz could not be found
>>> pytz.__version__ 
'2011n'

Теперь для краткости (этот пост уже давно), давайте предположим, что pytz был каким-то сторонним приложением django. Вы бы просто написали:

INSTALLED_APPS = (
    'pytz',
)

И pytz будет доступен в вашем проекте.

Примечание: если у вас есть время, посмотрите на Инструменты современного Python Hacker: Virtualenv, Fabric and Pip В блоге, в котором освещаются некоторые отличные инструменты инфраструктуры Python.

1 голос
/ 01 декабря 2011

Ну, немного погуглить не повредит тебе;)

Вам нужен менеджер пакетов Python, такой как easy_install и pip. Попробуйте это руководство:

http://blog.praveengollakota.com/47430655

После этого вы можете просто выполнить "pip install django-cms"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...