Как установить дампскрипт фрагмента Django? - PullRequest
3 голосов
/ 22 октября 2009

Как установить фрагмент кода Django, в частности фрагмент 818 - dumpscript, в Linux?

Обновление 2 . Вопрос был о Linux, но для справки я перечислил соответствующий способ установки dumpscript на Windows ниже, например. для использования во время разработки. (Но это также может быть сделано другим / стандартным способом, если нет ограничений доступа к файлу.)

Обновление 1 . Это установит его для приложения с именем «programRelease» (в окне командной строки Linux, Bash shell):

cd /home/msquant/www/GoogleCodeHost/programRelease
mkdir management
touch management/__init__.py
mkdir management/commands
touch management/commands/__init__.py
wget  http://www.djangosnippets.org/snippets/818/download/ --output-document=/home/msquant/818.py
cp /home/msquant/818.py management/commands/dumpscript.py

Фрагмент dumpscript теперь является частью Расширения команд настраиваемого управления Django , но я не могу установить его, так как он находится на хост-сервере, где у меня нет прав на установку Python. Это сообщение об ошибке при запуске «python setup.py install» для установки расширений команды:

error: could not create '/usr/lib/python2.5/site-packages/django_extensions': Permission denied

Вместо этого я просто хочу установить фрагмент и использовать его.

Я попытался установить его таким образом на сервере хостинга:

cd /home/msquant/
wget  http://www.djangosnippets.org/snippets/818/download/  --output-document=818.py
cp /home/msquant/818.py /home/msquant/www/GoogleCodeHost/dumpscript.py

И используя это так:

cd /home/msquant/www/GoogleCodeHost
python manage.py dumpscript programRelease 

Сообщение об ошибке:

Unknown command: 'dumpscript'
Type 'manage.py help' for usage.

Работает встроенный dumpdata (вывод в формате JSON ):

cd /home/msquant/www/GoogleCodeHost
python manage.py dumpdata programRelease 

Ссылка "Обновление 2" выше:

Для установки в Windows (предполагается, что EXE-файл wget находится в каталоге D: \ wget и что временный каталог d: \ temp2 существует):

d:
cd D:\dproj\MSQall\website\GoogleCodeHost
mkdir management
echo. > management\__init__.py
mkdir management\commands
echo. > management\commands\__init__.py
D:\wget\wget.exe  http://www.djangosnippets.org/snippets/818/download/ --output-document=d:\temp2\818.py
copy d:\temp2\818.py management\commands\dumpscript.py

Ответы [ 2 ]

2 голосов
/ 22 октября 2009

Просто поместите фрагмент в {appname}/management/commands/, где {appname} - имя установленного приложения. Каждый модуль Python в этом каталоге будет автоматически обнаружен и зарегистрирован как команда, которая может быть выполнена как действие при запуске manage.py.

Вам нужно будет поставить пустой __init__.py в {appname}/management/ и {appname}/management/commands/, чтобы эти работали, если эти файлы еще не существуют.

См. документы для получения дополнительной информации о написании пользовательских команд (очевидно, в вашем случае команда уже написана).

1 голос
/ 14 января 2010

Я давно не обновлял эту версию djangosnippets, надеюсь, она вам подойдет.

Обратите внимание, что вам не нужно "устанавливать" чистые приложения на Python, такие как django_extensions; Вы можете использовать его, просто поместив папку по пути (например, где находится каталог вашего проекта). В противном случае попробуйте использовать файл dumpscript.py, найденный в django_extensions (он более новый)

В течение следующих нескольких недель у меня должно быть время, чтобы немного усовершенствовать dumpscript и заставить его играть лучше с некоторыми новыми функциями django: -)

Ура, Уилл

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