AMI를 생성 중입니다.우분투 20.04(Focal Fossa), 기본 Python 버전을 3.6으로 설정하고 싶습니다.
올바른 pip와 함께 Python 3.6을 설치한 후 다음과 같이 대안을 설정했습니다.
update-alternatives --install \
/usr/bin/python3 \
python3 \
/usr/bin/python3.6 \
10
그러나 나는 그와 관련된 많은 문제에 직면했습니다.CPythonpython3-apt
(apt_pkg, apt_inst) 와 같은 패키지 netifaces
와 아직 발견하지 못한 더 많은 패키지가 있을 것입니다.
둘 다 위치하며 /usr/lib/python3/dist-packages
패키지 이름은 다음 형식입니다.
{name}.cpython-38-x86_64-linux-gnu.so
Ubuntu 20.04의 기본 Python 버전은 Python 3.8이므로 이는 의미가 있습니다.
Google 검색에 대한 즉각적인 해결책은 다음과 같이 이름을 연결하는 것입니다.
ln -s {name}.cpython-38-x86_64-linux-gnu.so {name}.so
즉:
ln -s apt_pkg.cpython-38-x86_64-linux-gnu.so apt_pkg.so
ln -s netifaces.cpython-38-x86_64-linux-gnu.so netifaces.so
기본 Python 버전이 3.6( )일 때 관련 패키지를 다시 설치해 보았지만 apt install --reinstall python3-apt
성공하지 못했고 이 링크된 파일 솔루션은 *.so
확장성이 없습니다!
Python 3.6이 시스템의 기본 CPython 패키지와 작동하도록 하는 방법이 있습니까?
답변1
당신이 발견했듯이 시스템은 다음에 의존합니다.체계Python 버전은 예상대로입니다. Python 3.6이 포함된 시스템을 정말로 원한다면 가장 좋은 방법은 Python 3.6을 사용하는 (이상적으로는 여전히 지원되는) 버전을 찾는 것입니다. 귀하의 경우에는 Ubuntu 18.04입니다.
AMI에서 실행되는 프로그램에 Python 3.6을 제공하려는 경우 시스템 Python을 교체하는 대신 가상 환경 사용을 고려할 수 있습니다.피엔브좋은 출발점입니다.
답변2
클라우드에 있는 모든 컴퓨터의 환경을 마치 가까운 실제 컴퓨터인 것처럼 관리하세요. Ubuntu 20.x를 사용 중이고 기본 설치된 Python 버전이 3.8이지만 Python v3.6이 필요한 경우 필요에 따라 가상 환경을 설치하십시오. 이 작업을 수행하는 데 사용할 수 있습니다 pyenv
. 현재 수행 중인 작업은 기본 Python 설치를 천천히 중단하는 것입니다. 이는 해당 컴퓨터에 있는 수많은 패키지(클라우드 기반이든 아니든)에 부정적인 영향을 미치게 됩니다.
나는 추가한다지도 시간관심이 있으시다면 제가 Python 환경 가상화에 관해 글을 쓴 적이 있습니다(특히 리소스 pyenv
).