CryptographyDeprecationWarning: Python 2 không còn được nhóm cốt lõi Python hỗ trợ nữa
Tôi đang cố gắng chạy docker-compose(đã được cài đặt qua pip), nhưng gặp lỗi sau:
# 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
#
Có cách nào để buộc docker-composesử dụng python3 thay vì python( python2) không?
@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
------------------------------
#
Trả lời
Đây là sự cố của phiên bản mới nhất (0.17.0) của pyrsvial.
Bạn nên cài đặt phiên bản trước.
pip uninstall pyrsistent
pip install pyrsistent==0.16.0
Tôi không biết liệu điều này có khắc phục được sự cố của bạn hay không nhưng tôi hy vọng nó có thể giúp bạn gỡ rối. Tôi đã gặp vấn đề tương tự, nhưng tôi mệt mỏi khi chạy pip install docker-composetrong gitlab CI của mình.
Các cấu hình của tôi trước đây, nơi sự cố xảy ra là:
- apk update
- apk upgrade
- apk add python python-dev py-pip build-base libffi-dev openssl-dev libgcc
- pip install docker-compose
Điều đã sửa nó cho tôi là như sau:
- 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
Vì vậy, tôi đoán nhận xét của @ MikaelH là đúng. Cố gắng cập nhật lên pip3 và đảm bảo rằng bạn đã cài đặt các phần phụ thuộc cần thiết. Điều đó sẽ phụ thuộc vào môi trường / hệ thống của bạn. Nếu bạn đang sử dụng Debian, bạn có thể sử dụng sudo apt-get install python3, sudo apt-get install python3-pipvà sudo apt-get install python3-dev libffi-dev libssl-devv.v.
Vì Python 2 hiện đã hết hạn sử dụng, nên sử dụng phiên bản Python 3 của pip để cài đặt docker-comp. Trên Debian hoặc Ubuntu, nó có thể được cài đặt bằng:
apt-get install python3-pip
Sau đó, phiên bản Python 3 pip có thể được sử dụng để cài đặt Docker Compose
pip3 install docker-compose