Автоматическое развертывание Django с использованием Fabric - PullRequest
0 голосов
/ 04 июня 2018

Я хотел автоматически развернуть свой проект django, используя Fabric3

Вот мой 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 deploy

И, наконец, вот ошибка:

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'

Плз, помогите мне с этим !!!!

Ответы [ 3 ]

0 голосов
/ 25 ноября 2018

ткань имеет две версии.Ваш код не соответствует версии фабрики.

pip uninstall fabric

pip install 'fabric<2.0'

тогда все будет хорошо.

0 голосов
/ 24 июля 2019

Пожалуйста, попробуйте просто написать следующую команду, которая может работать в рабочем каталоге:

fab deploy

НЕ :

python fabfile.py fab deploy
0 голосов
/ 09 июля 2018

Разве это не должно быть fab -f fabfile.py deploy

В любом случае, возможно, у вас неправильная установка, попробуйте:

which python

Соответствует ли это:

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