Пользовательская команда управления Django иногда работает, иногда нет, в зависимости от пути - PullRequest
0 голосов
/ 11 января 2012

Эта история происходит под Ubuntu Linux 10 с Python 2.6.5.

Я создал новую пользовательскую команду в вызове проекта django taskserver.

Когда я нахожусь в каталоге проекта (который /opt/acme/python-site/acme/, и я выполняю

python manage.py taskserver

Пользовательская команда запускается правильно.

Когда я в /opt/acme/, моя команда taskserver выполняет следующую команду:

python /opt/acme/python-site/acme/manage.py taskserver

Когда я нахожусь в /opt/acme/deploy/, следующая команда (такая же, как указано выше) не может выполнить мою пользовательскую команду taskserver:

python /opt/acme/python-site/acme/manage.py taskserver

Он жалуется, что:

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

Есть идеи, почему текущее местоположение имеет значение, хотя я указываю полный путь к своему файлу manage.py? Мне нужно запустить эту команду из сценария фабрики, который находится в каталоге deploy. Любые предложения о том, как сделать эту работу?

Ответы [ 2 ]

2 голосов
/ 11 января 2012

Убедитесь, что приложение с пакетом управления находится в вашей PYTHONPATH.Например, если файл taskserver.py находится в /opt/acme/python-site/acme/management/commands/taskserver.py

env PYTHONPATH=$PYTHONPATH:/opt/acme/python-site/acme python /path/to/manage.py taskserver

В общем, указание полного пути к manage.py не обязательно правильно настроит PYTHONPATH.

Fabricтакже могут быть свои собственные методы установки переменной окружения PYTHONPATH, я не помню, чтобы это было не так.Но использование env должно работать независимо.

0 голосов
/ 11 января 2012

попробуйте

python ../python-site/acme/manage.py taskserver

когда вы находитесь в /opt/acme/deploy/, вы должны вернуться к предыдущему каталогу. на ../ тогда вы находитесь в /opt/acme/ dir, здесь ваш путь к manage.py равен ../python-site/acme/manage.py

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