CryptographieDeprecationAvertissement: Python 2 n'est plus pris en charge par l'équipe principale de Python
J'essaie de courir docker-compose(qui a été installé via pip), mais je rencontre l' erreur suivante:
# pip install --quiet docker-compose
# docker-compose ps
/usr/local/lib/python2.7/dist-packages/paramiko/transport.py:33: CryptographyDeprecationWarning: Python 2 is no longer supported by the Python core team. Support for it is now deprecated in cryptography, and will be removed in a future release.
from cryptography.hazmat.backends import default_backend
Traceback (most recent call last):
File "/usr/local/bin/docker-compose", line 7, in <module>
from compose.cli.main import main
File "/usr/local/lib/python2.7/dist-packages/compose/cli/main.py", line 24, in <module>
from ..config import ConfigurationError
File "/usr/local/lib/python2.7/dist-packages/compose/config/__init__.py", line 6, in <module>
from .config import ConfigurationError
File "/usr/local/lib/python2.7/dist-packages/compose/config/config.py", line 51, in <module>
from .validation import match_named_volumes
File "/usr/local/lib/python2.7/dist-packages/compose/config/validation.py", line 12, in <module>
from jsonschema import Draft4Validator
File "/usr/local/lib/python2.7/dist-packages/jsonschema/__init__.py", line 21, in <module>
from jsonschema._types import TypeChecker
File "/usr/local/lib/python2.7/dist-packages/jsonschema/_types.py", line 3, in <module>
from pyrsistent import pmap
File "/usr/local/lib/python2.7/dist-packages/pyrsistent/__init__.py", line 3, in <module>
from pyrsistent._pmap import pmap, m, PMap
File "/usr/local/lib/python2.7/dist-packages/pyrsistent/_pmap.py", line 98
) from e
^
SyntaxError: invalid syntax
#
# cat /etc/debian_version
9.13
# python2 --version
Python 2.7.13
# python3 --version
Python 3.5.3
#
Existe-t-il un moyen de forcer l' docker-composeutilisation de python3 au lieu de python( python2)?
@Micromegas / @MikaelH
# apt-get -q install python3-pip
# pip3 install --quiet docker-compose
# docker-compose ps
/usr/local/lib/python3.5/dist-packages/paramiko/transport.py:33: CryptographyDeprecationWarning: Python 3.5 support will be dropped in the next release ofcryptography. Please upgrade your Python.
from cryptography.hazmat.backends import default_backend
Name Command State Ports
------------------------------
#
Réponses
C'est le problème de la dernière version (0.17.0) de pyrsistent.
Vous devez installer la version précédente.
pip uninstall pyrsistent
pip install pyrsistent==0.16.0
Je ne sais pas si cela résoudra votre problème, mais j'espère que cela pourra vous aider à le résoudre. J'ai eu le même problème, mais j'étais fatigué de courir pip install docker-composedans mon gitlab CI.
Mes configurations avant, là où le problème est survenu, étaient les suivantes:
- apk update
- apk upgrade
- apk add python python-dev py-pip build-base libffi-dev openssl-dev libgcc
- pip install docker-compose
Ce qui a résolu le problème pour moi était le suivant:
- apk update
- apk upgrade
- apk add build-base libffi-dev openssl-dev libgcc
- apk add python3
- apk add python3-dev
- apk add py3-pip
- pip3 install docker-compose
Donc je suppose que le commentaire de @ MikaelH est parfait. Essayez de mettre à jour vers pip3 et assurez-vous que les dépendances nécessaires sont installées. Cela dépendra de votre environnement / système. Si vous êtes sur Debian, vous pouvez utiliser sudo apt-get install python3, sudo apt-get install python3-pipet sudo apt-get install python3-dev libffi-dev libssl-devetc ...
Comme Python 2 est maintenant en fin de vie, la version Python 3 de pip doit être utilisée pour installer docker-compose. Sur Debian ou Ubuntu, il peut être installé avec:
apt-get install python3-pip
Ensuite, la version Python 3 pip peut être utilisée pour installer Docker Compose
pip3 install docker-compose