我开始将Fabric用于Django生产服务器
这是我的fabfile.py
from fabric.api import *
env.hosts = ['me@myserver.net']
def srefresh():
with path('~me/myproject'):
run('python manage.py collectstatic')
sudo('apachectl restart')
这是输出
$ fab srefresh
[me@myserver.net]执行任务'srefresh'
[me@myserver.net]运行:python manage.py collectstatic
[me@myserver.net] out:python:无法打开文件'manage.py':[Errno 2]没有这样的文件或目录
我做错了什么?
(不确定我是否正在使用with
上下文管理器)
答案 0 :(得分:1)
实际上,它很清楚地写在docs中。 fabric.context_managers.path
改变PATH变量。 fabric.context_managers.cd
可用于更改远程目录。所以在你的情况下:
def srefresh():
with cd('~me/myproject'):
run('python manage.py collectstatic')
应该这样做。
答案 1 :(得分:0)
你试过
吗?run('python ./manage.py collectstatic')
另请检查manage.py
的权限