파이썬

개선된 파이썬 성능

작업 부하에 따라, 최대 27% 향상된 성능이 이제 파이썬-기반 소프트웨어에서 관찰됩니다. 향상된 성능은 -fno-semantic-interposition`와 함께 파이썬 인터프리터를 제작하여 수행됩니다. 이는 이제 의미론적 개입이 없기 때문에, `libpython`에서 `libpython 라이브러리로의 내부 심볼릭 조회가 직접적이고 더 빠릅니다.

결과적으로, 만약 페도라 사용자가 libpython`에서 심볼릭을 재정의하기 위해 `LD_PRELOAD`를 사용하여야 하면, 권장되는 방법은 `-fno-semantic-interposition 없이 사용자 정의 파이썬 빌드를 제작하는 것입니다. 아무튼, 이는 여전히 `LD_PRELOAD`를 사용하여 다른 라이브러리(glibc에서 예제로)에서 심볼릭을 재정의 할 수 있습니다.

파이썬 2가 제거되었습니다

파이썬 업스트림은 2020년 1월 1일에서 파이썬 2 지원이 멈췄습니다. 이런 이유로, 페도라 32는 파이썬 2 꾸러미를 제거합니다.

다음 꾸러미는 더 이상 사용 할 수 없습니다:

  • 파이썬 2 꾸러미와 모든 이 하위 꾸러미.

  • 파이썬 2를 실행하는데 필요한 모든 꾸러미.

  • 파이썬 2를 빌드하는데 필요한 모든 꾸러미.

페도라 32는 아직 레거시 파이썬27 꾸러미를 제공합니다. 이와 같은 꾸러미는 파이썬 2를 지원해야 하는 개발자와 파이썬 2에 의존하는 소프트웨어를 사용해야 하는 사용자를 대상으로 합니다.

파이썬27 꾸러미는 원래의 파이썬2 꾸러미와 비교하여 여러가지 제약을 갖고 있습니다:

  • 꾸러미는 하위 꾸러미를 가지고 있지 않습니다. 모든 내용은 단일 꾸러미에서 저장됩니다.

  • 꾸러미는 디버그 제작을 제공하지 않으며, 이것은 이전에는 `파이썬2-디버그`로 사용 할 수 있었습니다.

  • 꾸러미는 /usr/bin/python 바이너리를 제공하지 않습니다.

  • 모든 특별한 하위 호환 제공은 제거됩니다 (이 꾸러미는 의존 하려는 의도가 아닙니다).

Nose를 위해 더 이상 사용하지 않는 지원

Nose를 위한 지원은 이제 사용되지 않습니다. 그러나 현재는, python3-nose 꾸러미를 페도라 저장소에서 계속 사용 할 수 있습니다. 아직 python3-nose 꾸러미를 제거하기 위한 특정 출시가 없습니다.

종속 꾸러미의 사용자와 작성자는 python3-pytest 또는 `python3-nose2`로 전환하는 것이 좋습니다.

사용자-설치된 pip 꾸러미를 이전하는데 기록합니다

페도라 30 또는 31에서 페도라 32로 향상 할 때에, 주요 파이썬 인터프리터 버전은 3.7에서 3.8로 변경됩니다. 만약 `pip`를 사용하여 설치된 파이썬 꾸러미가 있는 경우라면, 당신은 다음 절차를 완료하여 신규 버전으로 이전해야 합니다:

  1. 이전의 주요 파이썬 버전을 설치합니다:

    sudo dnf install python3.7
  2. 이전 주요 파이썬 버전을 위해 `pip`을 가져옵니다:

    python3.7 -m ensurepip --user
  3. 설치된 꾸러미를 관찰합니다:

    python3.7 -m pip list
  4. 특정 버전으로 목록을 저장합니다:

    python3.7 -m pip freeze > installed.txt
  5. 현재 기본 설정 버전을 위해 동일한 꾸러미를 설치합니다:

    python3 -m pip install --user -r installed.txt
  6. 3.7을 위해 사용자-설치된 꾸러미를 제거합니다; 이는 `~/.local/bin`에서 파일의 적절한 제거를 보장합니다:

    python3.7 -m pip uninstall $(python3.7 -m pip list --user | cut -d" " -f1)
  7. 선택적으로, 비워 있는 디렉토리 구조를 위해 정리합니다:

    rm -rf ~/.local/lib/python3.7/
  8. 선택적으로, 불필요한 파이썬 버전을 제거합니다:

    sudo dnf remove python3.7

추가적으로, sudo`를 사용하여 설치된 `pip 꾸러미가 있는 경우라면, 위의 마지막 단계를 실행하기 전에 `python3.7`_을 제거하는 다음 명령을 실행하거나, 임시적으로 다시-설치하세요:

  1. `root`를 위해 이전 파이썬 버전용 `pip`을 가져옵니다:

    sudo python3.7 -m ensurepip
  2. 시스템-설치된 꾸러미를 관찰합니다:

    sudo python3.7 -m pip list
  3. 3.7을 위해 설치된 꾸러미를 제거합니다; 이는 `/usr/local/bin`에서 파일의 적절한 제거를 보장합니다:

    sudo python3.7 -m pip uninstall $(python3.7 -m pip list | cut -d" " -f1)
  4. 선택적으로, 지금 비어 있는 디렉토리 구조를 정리합니다:

    sudo rm -rf /usr/local/lib*/python3.7/

만약 당신이 첫 번째 절차를 따른다면, 꾸러미는 이미 기본 옵션인 사용자 계정을 위해 설치되어 있습니다. 미래에 `sudo pip`를 사용을 꺼린다면, 이들 지침은 과거에 이미 `sudo pip`를 사용한 사용자를 복구하기 위한 것입니다.