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 и правами доступа не обнаружено.
