Django - Fabric & collecstatic - 无法打开文件 'manage.py

1 投票
2 回答
1656 浏览
提问于 2025-04-17 04:54

我刚开始使用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] 输出: python: 无法打开文件 'manage.py': [Errno 2] 没有那个文件或目录

我哪里做错了?
(不太确定我是否正确使用了 with 上下文管理器)

2 个回答

0

你试过这样做吗

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

另外,检查一下manage.py的权限

1

其实,这在文档里写得很清楚。fabric.context_managers.path 是用来修改 PATH 变量的。fabric.context_managers.cd 可以用来改变远程目录。所以在你的情况下:

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

这样做就可以了。

撰写回答