Django — Fabric и collecstatic — не удается открыть файл «manage.py»

Я начинаю использовать Fabric для рабочего сервера Django.
Вот мой fabfile.py

from fabric.api import *
env.hosts = ['[email protected]']
def srefresh():
  with path('~me/myproject'):
    run('python manage.py collectstatic')
    sudo('apachectl restart')

И вот вывод

$ fab srefresh
[[email protected]] Выполнение задачи 'srefresh'
[[email protected]] run: python manage.py collectstatic
[[email protected]] out: python: can 't open file 'manage.py': [Errno 2] Нет такого файла или каталога

Что я делаю неправильно?
(не уверен, что правильно использую контекстный менеджер with)


person Pierre de LESPINAY    schedule 24.10.2011    source источник


Ответы (2)


На самом деле, это довольно четко написано в документах. fabric.context_managers.path изменяет переменную PATH. fabric.context_managers.cd можно использовать для изменения удаленного каталога. Итак, в вашем случае:

def srefresh():
    with cd('~me/myproject'):
        run('python manage.py collectstatic')

должен сделать трюк.

person Haes    schedule 24.10.2011
comment
Да, это была небольшая путаница - person Pierre de LESPINAY; 24.10.2011

Вы пробовали с

run('python ./manage.py collectstatic')

Также проверьте разрешения для manage.py.

person Francisco Puga    schedule 24.10.2011
comment
То же самое, python manage.py collectstatic работает нормально при запуске вручную в хорошем каталоге (то есть ~me/myproject) - person Pierre de LESPINAY; 24.10.2011