MAC OS X - tahoe 26 - как проверить все установленные версии python - ssh - 2026

Материал из Wiki - Iphoster - the best ever hosting and support. 2005 - 2026
Перейти к:навигация, поиск

MAC OS X - tahoe 26 - как проверить все установленные версии python - ssh - 2026

# sudo -u antonmac -H bash python_version_check.sh


#!/usr/bin/env bash

set -Eeuo pipefail

###############################################################################
# Python Environment Report for macOS
###############################################################################

PIP_ARGS="--disable-pip-version-check"

if [ "$(id -u)" = "0" ]; then
    export PIP_NO_CACHE_DIR=1
fi

echo "============================================================"
echo " Python Environment Report"
echo "============================================================"

echo
echo "=== System ==="
echo "Date         : $(date)"
echo "User         : $(whoami)"
echo "UID          : $(id -u)"
echo "Hostname     : $(hostname)"
echo "macOS        : $(sw_vers -productVersion) ($(sw_vers -buildVersion))"
echo "Architecture : $(uname -m)"

echo
echo "=== Execution Context ==="
echo "HOME         : $HOME"
echo "SUDO_USER    : ${SUDO_USER:-<not set>}"
echo "SUDO_UID     : ${SUDO_UID:-<not set>}"
echo "SUDO_GID     : ${SUDO_GID:-<not set>}"

echo
echo "=== PATH ==="
which -a python python3 2>/dev/null || true

echo
echo "PATH=$PATH"

echo
echo "=== Homebrew Python packages ==="
brew list 2>/dev/null | grep '^python' || echo "No Homebrew Python packages found"

echo
echo "=== Installed Python versions ==="

for p in /usr/bin/python3 /opt/homebrew/bin/python3 /opt/homebrew/bin/python3.[0-9]*; do
    [ -x "$p" ] || continue
    [[ "$p" == *-config ]] && continue

    VERSION="$($p --version 2>&1)"
    SSL="$($p -c 'import ssl; print(ssl.OPENSSL_VERSION)' 2>/dev/null || echo 'N/A')"

    printf "%-35s -> %-16s | %s\n" "$p" "$VERSION" "$SSL"
done

echo
echo "=== Default Python ==="
echo "Executable : $(which python3)"
echo "Version    : $(python3 --version)"
echo "SSL        : $(python3 -c 'import ssl; print(ssl.OPENSSL_VERSION)')"

echo
echo "=== pip ==="

if command -v pip3 >/dev/null; then
    echo "Executable : $(which pip3)"
    pip3 --version
fi

echo
echo "=== uv ==="

if command -v uv >/dev/null; then

    uv --version

    echo
    echo "--- uv Python versions ---"
    uv python list || true

    echo
    echo "--- uv installed tools ---"
    uv tool list || true

    echo
    echo "--- uv tool details ---"

    while read -r tool _; do

        [ -z "$tool" ] && continue

        TOOL_DIR="$HOME/.local/share/uv/tools/$tool"

        [ -d "$TOOL_DIR" ] || continue

        echo
        echo "Tool       : $tool"

        if [ -x "$TOOL_DIR/bin/python" ]; then
            echo "Python     : $("$TOOL_DIR/bin/python" --version)"
            echo "SSL        : $("$TOOL_DIR/bin/python" -c 'import ssl; print(ssl.OPENSSL_VERSION)')"
            echo "Executable : $TOOL_DIR/bin/python"
        fi

        LAUNCHER=$(uv tool list | awk -v t="$tool" '
            $1==t {getline; gsub(/^- /,""); print; exit}
        ')

        if [ -n "$LAUNCHER" ] && [ -x "$HOME/.local/bin/$LAUNCHER" ]; then
            echo "Launcher   : $HOME/.local/bin/$LAUNCHER"
            echo "Shebang    : $(head -1 "$HOME/.local/bin/$LAUNCHER")"
        fi

    done < <(uv tool list | awk '/ v/{print $1}')

else
    echo "uv not installed"
fi

echo
echo "=== pipx ==="

if command -v pipx >/dev/null; then
    pipx --version
    echo
    pipx list
else
    echo "pipx not installed"
fi

echo
echo "=== Virtual environments ==="

find "$HOME" \
    \( -name pyvenv.cfg -o -path "*/bin/activate" \) \
    2>/dev/null |
sed 's#/pyvenv.cfg##;s#/bin/activate##' |
sort -u

echo
echo "=== Environment variables ==="

echo "PYTHONHOME=${PYTHONHOME:-<not set>}"
echo "PYTHONPATH=${PYTHONPATH:-<not set>}"
echo "VIRTUAL_ENV=${VIRTUAL_ENV:-<not set>}"

echo
echo "=== Homebrew Python symlinks ==="

ls -l /opt/homebrew/bin/python* 2>/dev/null || true

echo
echo "=== Launcher inspection ==="

for exe in "$HOME/.local/bin/"*; do
    [ -x "$exe" ] || continue

    printf "%-30s -> %s\n" \
        "$(basename "$exe")" \
        "$(head -1 "$exe")"
done

echo
echo "=== Global packages ==="

for py in \
    /opt/homebrew/bin/python3.12 \
    /opt/homebrew/bin/python3.13 \
    /opt/homebrew/bin/python3.14
do
    [ -x "$py" ] || continue

    echo
    echo "------------------------------------------------------------"
    echo "$("$py" --version)"
    echo "------------------------------------------------------------"

    PIP_NO_CACHE_DIR=1 "$py" -m pip list $PIP_ARGS
done

echo
echo "=== UV permissions ==="

for dir in \
    "$HOME/.cache/uv" \
    "$HOME/.local/share/uv" \
    "$HOME/.local/bin"
do
    [ -e "$dir" ] || continue

    echo
    echo "$dir"

    stat -f "Owner: %Su:%Sg   Mode: %Sp" "$dir"

    COUNT=$(find "$dir" ! -user "$(whoami)" 2>/dev/null | wc -l | tr -d ' ')

    if [ "$COUNT" = "0" ]; then
        echo "Foreign owner files : none"
    else
        echo "Foreign owner files : $COUNT"
        find "$dir" ! -user "$(whoami)" 2>/dev/null | head -20
    fi
done

echo
echo "=== Disk usage ==="

du -sh \
    /opt/homebrew/Cellar/python* \
    "$HOME/.local/share/uv" \
    "$HOME/.cache/uv" \
    "$HOME/.local/share/pipx" \
    2>/dev/null || true

echo
echo "============================================================"
echo " Report completed."
echo "============================================================"


отчет на Published: 2026-07-27


Интерпретатор Путь Версия Python SSL/OpenSSL Источник Статус
macOS System Python /usr/bin/python3 Python 3.9.6 LibreSSL 2.8.3 Системный macOS ⚠️ Не использовать для сторонних пакетов
Homebrew Python (default) /opt/homebrew/bin/python3 Python 3.14.6 OpenSSL 3.6.3 (9 Jun 2026) Homebrew python@3.14 ✅ Основной Python системы
Homebrew Python 3.12 /opt/homebrew/bin/python3.12 Python 3.12.13 OpenSSL 3.6.3 (9 Jun 2026) Homebrew python@3.12 ✅ Рекомендуется для совместимости
Homebrew Python 3.13 /opt/homebrew/bin/python3.13 Python 3.13.14 OpenSSL 3.6.3 (9 Jun 2026) Homebrew python@3.13 ✅ Активная версия
Homebrew Python 3.14 /opt/homebrew/bin/python3.14 Python 3.14.6 OpenSSL 3.6.3 (9 Jun 2026) Homebrew python@3.14 ✅ Последняя версия

Версия Python по умолчанию

Параметр Значение
Команда python3
Исполняемый файл /opt/homebrew/bin/python3
Версия Python 3.14.6
SSL OpenSSL 3.6.3
Архитектура arm64 (Apple Silicon)

UV Python окружения

Инструмент Python SSL/OpenSSL Путь Статус
aider-chat v0.86.2 Python 3.12.13 OpenSSL 3.6.3 (9 Jun 2026) /Users/antonmac/.local/share/uv/tools/aider-chat/bin/python ✅ Работает

Homebrew Python пакеты

Пакет Версия Путь
python@3.12 3.12.13 /opt/homebrew/Cellar/python@3.12
python@3.13 3.13.14 /opt/homebrew/Cellar/python@3.13
python@3.14 3.14.6 /opt/homebrew/Cellar/python@3.14

Рекомендации по использованию

Задача Рекомендуемая версия Python
Системные задачи macOS Не использовать системный Python 3.9.6
Новые проекты Python 3.14
Максимальная совместимость библиотек Python 3.12
AI инструменты (aider, ML, LLM) Python 3.12
Тестирование новых возможностей Python Python 3.13 / 3.14

Примечание

  • Системный Python macOS использует LibreSSL 2.8.3 и не рекомендуется для установки современных Python-пакетов.
  • Homebrew Python использует OpenSSL 3.6.3, что обеспечивает совместимость с современными библиотеками.
  • Aider установлен через uv и использует отдельное окружение Python 3.12.13.
  • Конфликтов версий Python, проблем с SSL и правами доступа не обнаружено.
×
Реклама
ИКС