0

我對Python比較陌生,我正在嘗試將Flask應用程序部署到AWS Beanstalk。我遵循官方教程,瀏覽了很多關於在Beanstalk上使用Flask/Django的部署問題的在線資源(這裏或其他地方)。沒有成功,我不斷收到我無法修復的錯誤。 下面我的應用程序的結構:Flask Beanstalk部署錯誤

|-application.py 
|-config.py 
|-const.py 
|-requirements.txt 
|-app/ 
|--__init.py__ 
|--views.py 
|--models.py 
|--static/ 
|--templates/ 

我application.py

from app.views import application 

application.run(debug=False) 

我views.py文件的前幾行包含瓶應用的聲明:

from flask import Flask, render_template, redirect, url_for, session, request, abort 
from flask_bootstrap import Bootstrap 
from . models import Datalayer, Config, Signin 
from . util import check_user 
from flask_basicauth import BasicAuth 
from flask_bcrypt import Bcrypt 
from faker import Faker 
from htmlmin.minify import html_minify 
fake = Faker() 


application = app = Flask(__name__) 
app.config.from_object('config') 

bootstrap = Bootstrap(app) 
basic_auth = BasicAuth(app) 
bcrypt = Bcrypt(app) 

最後內容/var/log/eb-activity.log

SyntaxError: invalid syntax 
     2017-06-07 19:08:18,171 ERROR Error installing dependencies: Command '/opt/python/run/venv/bin/pip install -r /opt/python/ondeck/app/requirements.txt' returned non-zero exit status 1 
     Traceback (most recent call last): 
     File "/opt/elasticbeanstalk/hooks/appdeploy/pre/03deploy.py", line 22, in main 
      install_dependencies() 
     File "/opt/elasticbeanstalk/hooks/appdeploy/pre/03deploy.py", line 18, in install_dependencies 
      check_call('%s install -r %s' % (os.path.join(APP_VIRTUAL_ENV, 'bin', 'pip'), requirements_file), shell=True) 
     File "/usr/lib64/python2.7/subprocess.py", line 541, in check_call 
      raise CalledProcessError(retcode, cmd) 
     CalledProcessError: Command '/opt/python/run/venv/bin/pip install -r /opt/python/ondeck/app/requirements.txt' returned non-zero exit status 1 (ElasticBeanstalk::ExternalInvocationError) 
    caused by: Traceback (most recent call last): 
     File "/opt/python/run/venv/bin/pip", line 7, in <module> 
      from pip import main 
     File "/opt/python/run/venv/local/lib/python3.4/site-packages/pip/__init__.py", line 15, in <module> 
      from pip.vcs import git, mercurial, subversion, bazaar # noqa 
     File "/opt/python/run/venv/local/lib/python3.4/site-packages/pip/vcs/mercurial.py", line 10, in <module> 
      from pip.download import path_to_url 
     File "/opt/python/run/venv/local/lib/python3.4/site-packages/pip/download.py", line 38, in <module> 
      from pip._vendor import requests, six 
     File "/opt/python/run/venv/local/lib/python3.4/site-packages/pip/_vendor/requests/__init__.py", line 53, in <module> 
      from .packages.urllib3.contrib import pyopenssl 
     File "/opt/python/run/venv/local/lib/python3.4/site-packages/pip/_vendor/requests/packages/__init__.py", line 3, in <module> 
      from . import urllib3 
     File "/opt/python/run/venv/local/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/__init__.py", line 10, in <module> 
      from .connectionpool import (
     File "/opt/python/run/venv/local/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/connectionpool.py", line 37, in <module> 
      from .request import RequestMethods 
     File "/opt/python/run/venv/local/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/request.py", line 6, in <module> 
      from .filepost import encode_multipart_formdata 
     File "/opt/python/run/venv/local/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/filepost.py", line 3, in <module> 
      from uuid import uuid4 
     File "/opt/python/run/venv/local/lib/python3.4/site-packages/uuid.py", line 138 
      if not 0 <= time_low < 1<<32L: 
            ^
     SyntaxError: invalid syntax 
     2017-06-07 19:08:18,171 ERROR Error installing dependencies: Command '/opt/python/run/venv/bin/pip install -r /opt/python/ondeck/app/requirements.txt' returned non-zero exit status 1 
     Traceback (most recent call last): 
     File "/opt/elasticbeanstalk/hooks/appdeploy/pre/03deploy.py", line 22, in main 
      install_dependencies() 
     File "/opt/elasticbeanstalk/hooks/appdeploy/pre/03deploy.py", line 18, in install_dependencies 
      check_call('%s install -r %s' % (os.path.join(APP_VIRTUAL_ENV, 'bin', 'pip'), requirements_file), shell=True) 
     File "/usr/lib64/python2.7/subprocess.py", line 541, in check_call 
      raise CalledProcessError(retcode, cmd) 
     CalledProcessError: Command '/opt/python/run/venv/bin/pip install -r /opt/python/ondeck/app/requirements.txt' returned non-zero exit status 1 (Executor::NonZeroExitStatus) 

而且我requirements.txt:

appdirs==1.4.3 
bcrypt==3.1.3 
beautifulsoup4==4.6.0 
cffi==1.10.0 
click==6.7 
django-htmlmin==0.10.0 
dominate==2.3.1 
Faker==0.7.12 
Flask==0.12.2 
Flask-BasicAuth==0.2.0 
Flask-Bcrypt==0.7.1 
Flask-Bootstrap==3.3.7.1 
Flask-WTF==0.14.2 
html5lib==0.999999999 
itsdangerous==0.24 
Jinja2==2.9.6 
MarkupSafe==1.0 
packaging==16.8 
pycparser==2.17 
pyparsing==2.2.0 
python-dateutil==2.6.0 
PyYAML==3.12 
requests==2.14.2 
six==1.10.0 
ua-parser==0.7.3 
user-agents==1.1.0 
uuid==1.30 
visitor==0.1.3 
webencodings==0.5.1 
Werkzeug==0.12.2 
WTForms==2.1 

我有沒有青苗配置文件(還),但我已經進行手動安裝的:yum install libffi-devel

我的第一個問題是,我們如何確定,當我們需要將-devel包添加到我們的部署? (我通過安裝上面的devel軟件包解決了第一個部署問題。) 我認爲所有必需的軟件包/庫都將與requirements.txt一起安裝?

我的第二個問題是你有任何線索,爲什麼這個部署失敗? (有望被鏈接到的第一個問題?)

在此先感謝您的幫助,

STF

回答

0

嘗試從requirements.txt刪除以下行

uuid==1.30 

uuid是與2.5版本左右的Python捆綁在一起。

+0

嗨@Igor T.,謝謝。 我剛剛嘗試過,部署仍然失敗,我有同樣的錯誤。 –