windows:portable_tools:python:start
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| windows:portable_tools:python:start [2026/05/14 12:02] – | windows:portable_tools:python:start [2026/05/14 12:06] (текущий) – | ||
|---|---|---|---|
| Строка 8: | Строка 8: | ||
| '' | '' | ||
| - | <code powershell> | + | ==== Проверка на соответствие ==== |
| + | |||
| + | <code powershell | ||
| + | # ========================================= | ||
| + | # File: python_env_check.ps1 | ||
| + | # ========================================= | ||
| + | # DESCRIPTION: | ||
| + | # | ||
| + | # | ||
| + | # FEATURES: | ||
| + | # - Checks: | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # pip | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # - Displays: | ||
| + | # | ||
| + | # | ||
| + | # Pip version | ||
| + | # | ||
| + | # | ||
| + | # USAGE: | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # NOTES: | ||
| + | # | ||
| + | # | ||
| + | # EXAMPLE: | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # ========================================= | ||
| + | |||
| + | # ----------------------------------------- | ||
| + | # UTF-8 Console | ||
| + | # ----------------------------------------- | ||
| + | |||
| + | [Console]:: | ||
| + | |||
| + | # ----------------------------------------- | ||
| + | # Helper Functions | ||
| + | # ----------------------------------------- | ||
| + | |||
| + | function Write-Status { | ||
| + | param ( | ||
| + | [string]$Status, | ||
| + | [string]$Message | ||
| + | ) | ||
| + | |||
| + | switch ($Status) { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | default { $color = " | ||
| + | } | ||
| + | |||
| + | Write-Host (" | ||
| + | Write-Host $Message | ||
| + | } | ||
| + | |||
| + | function Test-WritableDirectory { | ||
| + | param ( | ||
| + | [string]$Path | ||
| + | ) | ||
| + | |||
| + | try { | ||
| + | $testFile = Join-Path $Path " | ||
| + | |||
| + | " | ||
| + | |||
| + | if (Test-Path $testFile) { | ||
| + | Remove-Item $testFile -Force -ErrorAction SilentlyContinue | ||
| + | return $true | ||
| + | } | ||
| + | |||
| + | return $false | ||
| + | } | ||
| + | catch { | ||
| + | return $false | ||
| + | } | ||
| + | } | ||
| + | |||
| + | # ----------------------------------------- | ||
| + | # Root Paths | ||
| + | # ----------------------------------------- | ||
| + | |||
| + | if ($args.Count -ge 1) { | ||
| + | |||
| + | $RootDir = $args[0] | ||
| + | } | ||
| + | else { | ||
| + | |||
| + | $ScriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path | ||
| + | |||
| + | $RootDir = Join-Path $ScriptDir " | ||
| + | } | ||
| + | |||
| + | $RootDir = [System.IO.Path]:: | ||
| + | |||
| + | $PythonExe = Join-Path $RootDir " | ||
| + | $LauncherPath = Join-Path $RootDir " | ||
| + | |||
| + | Write-Host "" | ||
| + | Write-Host " | ||
| + | Write-Host $RootDir | ||
| + | Write-Host "" | ||
| + | |||
| + | # ----------------------------------------- | ||
| + | # Header | ||
| + | # ----------------------------------------- | ||
| + | |||
| + | Write-Host "" | ||
| + | Write-Host " | ||
| + | Write-Host " Portable Python Environment Checker" | ||
| + | Write-Host " | ||
| + | Write-Host "" | ||
| + | |||
| + | # ----------------------------------------- | ||
| + | # Check python.exe | ||
| + | # ----------------------------------------- | ||
| + | |||
| + | if (Test-Path $PythonExe) { | ||
| + | Write-Status " | ||
| + | } | ||
| + | else { | ||
| + | Write-Status " | ||
| + | |||
| + | Write-Host "" | ||
| + | Read-Host "Press Enter" | ||
| + | exit | ||
| + | } | ||
| + | |||
| + | # ----------------------------------------- | ||
| + | # Find pythonXY._pth | ||
| + | # ----------------------------------------- | ||
| + | |||
| + | $PthFile = Get-ChildItem -Path $RootDir -Filter " | ||
| + | |||
| + | if ($PthFile) { | ||
| + | Write-Status " | ||
| + | } | ||
| + | else { | ||
| + | Write-Status " | ||
| + | } | ||
| + | |||
| + | # ----------------------------------------- | ||
| + | # Check import site | ||
| + | # ----------------------------------------- | ||
| + | |||
| + | if ($PthFile) { | ||
| + | |||
| + | $PthContent = Get-Content $PthFile.FullName -ErrorAction SilentlyContinue | ||
| + | |||
| + | $ImportSiteEnabled = $false | ||
| + | |||
| + | foreach ($line in $PthContent) { | ||
| + | |||
| + | $trim = $line.Trim() | ||
| + | |||
| + | if ($trim -eq " | ||
| + | $ImportSiteEnabled = $true | ||
| + | } | ||
| + | } | ||
| + | |||
| + | if ($ImportSiteEnabled) { | ||
| + | Write-Status " | ||
| + | } | ||
| + | else { | ||
| + | Write-Status " | ||
| + | } | ||
| + | } | ||
| + | |||
| + | # ----------------------------------------- | ||
| + | # Python Version | ||
| + | # ----------------------------------------- | ||
| + | |||
| + | try { | ||
| + | |||
| + | $PythonVersion = & $LauncherPath --version 2>& | ||
| + | |||
| + | Write-Status " | ||
| + | } | ||
| + | catch { | ||
| + | Write-Status " | ||
| + | } | ||
| + | |||
| + | # ----------------------------------------- | ||
| + | # Executable Path | ||
| + | # ----------------------------------------- | ||
| + | |||
| + | try { | ||
| + | |||
| + | $ExePath = & $LauncherPath -c " | ||
| + | |||
| + | Write-Status " | ||
| + | } | ||
| + | catch { | ||
| + | Write-Status " | ||
| + | } | ||
| + | |||
| + | # ----------------------------------------- | ||
| + | # Check pip | ||
| + | # ----------------------------------------- | ||
| + | |||
| + | try { | ||
| + | |||
| + | $PipVersion = & $LauncherPath -m pip --version 2>& | ||
| + | |||
| + | if ($LASTEXITCODE -eq 0) { | ||
| + | Write-Status " | ||
| + | Write-Host " | ||
| + | } | ||
| + | else { | ||
| + | Write-Status " | ||
| + | } | ||
| + | } | ||
| + | catch { | ||
| + | Write-Status " | ||
| + | } | ||
| + | |||
| + | # ----------------------------------------- | ||
| + | # Check site-packages | ||
| + | # ----------------------------------------- | ||
| + | |||
| + | try { | ||
| + | |||
| + | $SitePackages = & $LauncherPath -c " | ||
| + | |||
| + | if ($LASTEXITCODE -eq 0) { | ||
| + | |||
| + | Write-Status " | ||
| + | Write-Host " | ||
| + | |||
| + | if (Test-Path $SitePackages) { | ||
| + | Write-Status " | ||
| + | } | ||
| + | else { | ||
| + | Write-Status " | ||
| + | } | ||
| + | } | ||
| + | else { | ||
| + | Write-Status " | ||
| + | } | ||
| + | } | ||
| + | catch { | ||
| + | Write-Status " | ||
| + | } | ||
| + | |||
| + | # ----------------------------------------- | ||
| + | # Check user-site | ||
| + | # ----------------------------------------- | ||
| + | |||
| + | try { | ||
| + | |||
| + | $UserSite = & $LauncherPath -c " | ||
| + | |||
| + | if ($UserSite -eq " | ||
| + | Write-Status " | ||
| + | } | ||
| + | else { | ||
| + | Write-Status " | ||
| + | } | ||
| + | } | ||
| + | catch { | ||
| + | Write-Status " | ||
| + | } | ||
| + | |||
| + | # ----------------------------------------- | ||
| + | # Check User Site Path | ||
| + | # ----------------------------------------- | ||
| + | |||
| + | try { | ||
| + | |||
| + | $UserSitePath = & $LauncherPath -c " | ||
| + | |||
| + | if ($UserSite -eq " | ||
| + | |||
| + | Write-Status " | ||
| + | Write-Host " | ||
| + | } | ||
| + | else { | ||
| + | |||
| + | Write-Status " | ||
| + | Write-Host " | ||
| + | } | ||
| + | } | ||
| + | catch { | ||
| + | |||
| + | Write-Status " | ||
| + | } | ||
| + | |||
| + | |||
| + | # ----------------------------------------- | ||
| + | # Check PYTHONHOME | ||
| + | # ----------------------------------------- | ||
| + | |||
| + | if ($env: | ||
| + | Write-Status " | ||
| + | } | ||
| + | else { | ||
| + | Write-Status " | ||
| + | } | ||
| + | |||
| + | # ----------------------------------------- | ||
| + | # Check PYTHONPATH | ||
| + | # ----------------------------------------- | ||
| + | |||
| + | if ($env: | ||
| + | Write-Status " | ||
| + | } | ||
| + | else { | ||
| + | Write-Status " | ||
| + | } | ||
| + | |||
| + | # ----------------------------------------- | ||
| + | # Check TEMP Write Access | ||
| + | # ----------------------------------------- | ||
| + | |||
| + | $TempDir = Join-Path $RootDir " | ||
| + | |||
| + | if (-not (Test-Path $TempDir)) { | ||
| + | |||
| + | try { | ||
| + | New-Item -ItemType Directory -Path $TempDir -Force | Out-Null | ||
| + | } | ||
| + | catch {} | ||
| + | } | ||
| + | |||
| + | if (Test-WritableDirectory -Path $TempDir) { | ||
| + | Write-Status " | ||
| + | } | ||
| + | else { | ||
| + | Write-Status " | ||
| + | } | ||
| + | |||
| + | # ----------------------------------------- | ||
| + | # Check Local site-packages Folder | ||
| + | # ----------------------------------------- | ||
| + | |||
| + | $LocalSitePackages = Join-Path $RootDir " | ||
| + | |||
| + | if (Test-Path $LocalSitePackages) { | ||
| + | Write-Status " | ||
| + | } | ||
| + | else { | ||
| + | Write-Status " | ||
| + | } | ||
| + | |||
| + | |||
| + | # ----------------------------------------- | ||
| + | # Check sys.path | ||
| + | # ----------------------------------------- | ||
| + | |||
| + | try { | ||
| + | |||
| + | Write-Host "" | ||
| + | Write-Host " | ||
| + | |||
| + | & $LauncherPath -c " | ||
| + | } | ||
| + | catch { | ||
| + | |||
| + | Write-Status " | ||
| + | } | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | # ----------------------------------------- | ||
| + | # Footer | ||
| + | # ----------------------------------------- | ||
| + | |||
| + | Write-Host "" | ||
| + | Write-Host " | ||
| + | Write-Host " Check Complete" | ||
| + | Write-Host " | ||
| + | Write-Host "" | ||
| + | |||
| + | Read-Host "Press Enter" | ||
| + | </ | ||
| + | |||
| + | ==== Исправление ==== | ||
| + | |||
| + | <code powershell python_env_repair.ps1> | ||
| # ========================================= | # ========================================= | ||
| # File: python_env_repair.ps1 | # File: python_env_repair.ps1 | ||
windows/portable_tools/python/start.1778749358.txt.gz · Последнее изменение: —
