python - 使用 Fabric 进行 Django 自动部署

标签 python django python-3.x fabric

我想使用 Fabric3 自动部署我的 django 项目

这是我的 fabfile.py


    from fabric.api import env
    from fabric.api import run
    from fabric.operations import sudo

    GIT_REPO = "https://github.com/........"

    env.user = 'root'
    env.password = '...'

    env.hosts = ['demo....com']
    env.port = '22'


    def deploy():
        source_folder = '/home/.../sites/..../...'

        run('cd %s && git pull' % source_folder)
        run("""
            cd {} &&
            ../env/bin/pip install -r requirements.txt &&
            ../env/bin/python3 manage.py collectstatic --noinput &&
            ../env/bin/python3 manage.py migrate
            """.format(source_folder))
        sudo('restart gunicorn-demo.charon.me')
        sudo('service nginx reload')

这是我运行它的方式: python fabfile.py fab 部署

最后出现错误:

Traceback (most recent call last):
  File "/Users/charon/Documents/PycharmProjects/try_blog/fabfile.py", line 1, in 
    from fabric.api import env
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/fabric/api.py", line 10, in 
    from fabric.context_managers import (cd, hide, settings, show, path, prefix,
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/fabric/context_managers.py", line 27, in 
    from fabric.state import output, win32, connections, env
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/fabric/state.py", line 9, in 
    from fabric.network import HostConnectionCache, ssh
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/fabric/network.py", line 16, in 
    from fabric.exceptions import NetworkError
ImportError: cannot import name 'NetworkError'

请帮我解决这个问题!!!!

最佳答案

不应该是fab -f fabfile.py部署

无论如何,您的安装可能很困惑,请尝试:

which python

是否匹配:

/Library/Frameworks/Python.framework/Versions/3.6/bin/python

关于python - 使用 Fabric 进行 Django 自动部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50681800/

相关文章:

python - 嵌套在 Nest Json 模型中到 SQL 表

django - 如何将 Django-Timeline 连接到 Redis 后端?

python - 执行 django syncdb 时谷歌云 sql 错误

python - 为什么 Sets 允许多个具有不同 hashCode 的相同对象?

python - 简化if语句python

python - 搜索没有 html 标签的漂亮的 soup 输出

python - 基于另一个字典创建一个Python字典

python - max_length、填充和截断参数在 HuggingFace' BertTokenizerFast.from_pretrained ('bert-base-uncased' ) 中如何工作?

python - 如何在 django 中创建一个函数来向我的评论添加评论

python - 如何找到 Sprite 之间的距离?