我换了一台新电脑,在自动化部署网站的时候出现了问题。这篇就纯粹是自我提醒。
在fabric自动化部署的时候,出现 Error: cannot import name 'isMappingType',这个时候,可能是你的fabric安装版本错了。
用python3的时候,应该 pip install fabric3
而不是 pip install fabric
,注意是fabric3
。然后修改路径,到包含fabflie
的文件夹下,直接fab deploy
就好啦。如下图所示
cd D:\Python\BlogLearning\blogproject
fab deploy
附fabric完整代码:
from fabric.api import env, run
from fabric.operations import sudo
GIT_REPO = "https://github.com/******" # GitHub上你的文件位置
env.user = '****' # 你的用户名
env.password = '********' # 你的密码
# 填写你自己的主机对应的域名
env.hosts = ['www*******.com']
# 一般情况下为 22 端口,如果非 22 端口请查看你的主机服务提供商提供的信息
env.port = '22'
def deploy():
source_folder = '/home/***********' # 填写你在服务器上的文件路径
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-www.********.com') # 填写你自己的网址
sudo('service nginx reload')
网友评论