2

내 로컬 가상 환경에서 올바르게 작동 할뿐 아니라 우분투 인스턴스에 배포 된 플라스크 응용 프로그램이 있습니다. 문제는 Bcrypt를 확장하는 Flask-Bcrypt에 있습니다. 내가 FFIcffi에서 수입되는 것을 볼 수 Bcrypt source code 보면Flask-Bcrypt - AttributeError : 'module'객체에 'ffi'속성이 없습니다. AWS Beanstalk에 배포되었습니다.

File "/opt/python/current/app/application.py", line 391, in user_login 
if bc.check_password_hash(user.password, password): 
File "/opt/python/run/venv/lib/python2.7/site-packages/flask_bcrypt.py", line 193, in check_password_hash 
return safe_str_cmp(bcrypt.hashpw(password, pw_hash), pw_hash) 
File "/opt/python/run/venv/lib64/python2.7/site-packages/bcrypt/__init__.py", line 82, in hashpw 
hashed = _bcrypt.ffi.new("char[]", 128) 
AttributeError: 'module' object has no attribute 'ffi' 

: 내가 AWS 콩 줄기에 배포 할 때 나는 다음과 오류가

from cffi import FFI 

아래 내 핍 출력에서 ​​볼 수 있듯이, cffi==1.9.1이 설치되어 있습니다. 내가 which cffi를 실행하는 경우 그러나, 나는 볼 수

no cffi in (/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/aws/bin:/home/ec2-user/.local/bin:/home/ec2-user/bin) 

시스템 정보는 : 64bit Amazon Linux 2016.09 v2.3.0 running Python 2.7

이 패키지는 eb deploy에 설치됩니다

packages: 
    yum: 
     gcc-c++: [] 
     python27-devel: [] 
     gcc: [] 
     libffi-devel : [] 
     openssl-devel: [] 

나는 패키지 충돌 제안이 문제 here을 보았다 . 그러나 py-bcrypt이 설치되어 있지 않습니다. 이 다음

pip freeze 반환 :

aws-cfn-bootstrap==1.4 
aws-elasticbeanstalk-tools==1.19 
awscli==1.11.17 
awscli-cwlogs==1.3.3 
Babel==0.9.4 
backports.ssl-match-hostname==3.4.0.2 
bcrypt==3.1.2 
boto==2.42.0 
botocore==1.4.74 
cffi==1.9.1 
chardet==2.0.1 
click==6.7 
cloud-init==0.7.6 
colorama==0.2.5 
configobj==4.7.2 
cryptography==1.7.1 
docopt==0.4.0 
docutils==0.11 
ecdsa==0.11 
enum34==1.1.6 
Flask==0.12 
Flask-Bcrypt==0.7.1 
futures==3.0.3 
idna==2.2 
iniparse==0.3.1 
ipaddress==1.0.18 
itsdangerous==0.24 
Jinja2==2.7.2 
jmespath==0.9.0 
jsonpatch==1.2 
jsonpointer==1.0 
kitchen==1.1.1 
lockfile==0.8 
mandrill==1.0.57 
MarkupSafe==0.11 
meld3==1.0.2 
paramiko==1.15.1 
PIL==1.1.6 
ply==3.4 
pyasn1==0.1.9 
pycparser==2.17 
pycurl==7.19.0 
pygpgme==0.3 
pyliblzma==0.5.3 
pystache==0.5.3 
python-daemon==1.5.2 
python-dateutil==2.1 
pyxattr==0.5.0 
PyYAML==3.10 
requests==1.2.3 
rsa==3.4.1 
simplejson==3.6.5 
six==1.8.0 
supervisor==3.1.3 
urlgrabber==3.9.1 
urllib3==1.8.2 
virtualenv==12.0.7 
Werkzeug==0.11.15 
yum-metadata-parser==1.1.4 

어떤 도움이 크게 감사합니다.

답변

0

bcrypt, py-bcryptFlask-Bcrypt 사이에 충돌이있는 것처럼 보입니다.

나는이 동일한 문제가 있었으므로 나는 모두 제거했다. 그런 후 Flask-Bcrypt이 필요 없으므로 bcrypt 만 다시 설치하십시오.

이 오류가 해결되었습니다.