Код ошибки Python 9009: причины и исправления
Что означает код ошибки Python 9009
Код 9009 в Windows сигнализирует о том, что система не может найти исполняемый файл, указанный в команде. В контексте Python это чаще всего случается, когда интерпретатор не добавлен в переменную среды PATH или команда написана с опечаткой. Ошибка проявляется как exit code 9009 в выводе консоли, планировщика задач или при запуске скрипта из другого приложения.
Основное решение: добавление Python в PATH
Наиболее эффективный способ избавиться от ошибки 9009 - убедиться, что путь к папке с python.exe (например, C:\Python39 или C:\Users\имя\AppData\Local\Programs\Python\Python39) присутствует в системной переменной PATH. Если Python установлен, переустановите его с включённой опцией Add Python to PATH. Если переустановка невозможна, добавьте путь вручную.
Типичная проблема: после добавления пути в системные переменные изменения вступают в силу только после перезапуска командной строки. Если ошибка остаётся, проверьте порядок путей - иногда путь к Python стоит после другого неправильного пути.
:: Проверка текущего значения PATH
reg query "HKCU\Environment" /v PATH
:: Добавление пути через командную строку (с правами администратора)
setx PATH "%PATH%;C:\Python39" /MPython attributeerror object has no attribute (ошибка attributeerror в python)
Успешно: указанное значение сохранено.
Non utf 8 code starting with python (ошибка кодировки utf-8 в python)
Как временно обойти ошибку, не меняя PATH?
Если изменить системную переменную невозможно или требуется быстрый запуск, используйте полный путь к интерпретатору.
C:\Python39\python.exe C:\myscript.py
Python exit code 9009 (ошибка python с кодом 9009)
Как запустить скрипт из папки с Python без добавления в PATH?
Перейдите в папку, где установлен Python, и выполните команду:
cd C:\Python39
python.exe C:\scripts\main.pyПроблема: если версия Python отличается, путь может быть другим (Python310, Python311). Убедитесь, что путь указан верно.
Как использовать Python Launcher (py) для решения ошибки 9009?
Python Launcher (py.exe) автоматически находит установленный Python, даже если не прописан в PATH. Запустите скрипт командой:
py C:\myscript.py
py -3 script.py # явно указать версию 3Когда launcher не помогает?
Если установлено несколько версий Python, launcher может не сработать, если не указана конкретная версия. Используйте py -3.9.
Ошибка 9009 может появляться, если сам py.exe не найден. Проверьте его наличие в C:\Windows или в папке Python.
Как исправить ошибку при запуске через планировщик задач Windows?
В планировщике задач часто указывают просто python script.py, но если Python не в PATH, получите код 9009. Решение - указать полный путь к python.exe в действии задачи.
Программа: C:\Python39\python.exe
Аргументы: C:\Scripts\automation.pyКак решить проблему при вызове Python из другого приложения (C#, Node.js)?
При запуске дочернего процесса необходимо передавать полный путь к интерпретатору или использовать shell: true в Node.js / UseShellExecute = true в C#.
// C#
ProcessStartInfo start = new ProcessStartInfo();
start.FileName = @"C:\Python39\python.exe";
start.Arguments = @"C:\scripts\process.py";
Process.Start(start);# Node.js
const { spawn } = require('child_process');
const child = spawn('C:\\Python39\\python.exe', ['script.py']);Как проверить, что Python установлен и работает, если возникает код 9009?
Выполните в командной строке простую команду:
python --versionЕсли получаете 'python' не является внутренней или внешней командой, это прямое подтверждение проблемы PATH. Альтернатива: py --version.
Иногда файл python.exe повреждён или удалён. Проверьте установку через панель управления или запустите where python.
Что делать, если ошибка возникает внутри виртуального окружения?
Виртуальное окружение использует собственный интерпретатор. Активируйте его перед запуском:
.\venv\Scripts\activate # Windows
python script.pyЕсли окружение не активировано, может запуститься системный Python, которого нет в PATH. Явно укажите путь к venv:
.\venv\Scripts\python.exe script.pyРасширенные примеры и нестандартные сценарии
Запуск Python скрипта из пакетного файла (.bat) с проверкой ошибок
Внутри bat-файла можно предусмотреть альтернативные пути к Python для избежания кода 9009:
@echo off
:: Попытка запустить через py
py -3 script.py
if %errorlevel% equ 9009 (
echo Ошибка 9009: Python не найден через py
:: Альтернативный полный путь
C:\Python39\python.exe script.py
)
if %errorlevel% neq 0 (
echo Не удалось выполнить скрипт, код %errorlevel%
exit /b %errorlevel%
)Интеграция Python с PowerShell - явное указание интерпретатора
PowerShell может запускать Python как команду. Для избежания 9009 используйте вызов с полным путём:
& 'C:\Python310\python.exe' 'C:\work\analysis.py'
# или через Start-Process
Start-Process -FilePath "C:\Python310\python.exe" -ArgumentList "analysis.py" -WaitАвтоматическое определение пути к Python через реестр (скрипт на Python)
Если нужно программно определить путь к интерпретатору внутри другого скрипта:
import winreg, os
def find_python():
try:
key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, r"SOFTWARE\Python\PythonCore\3.10\InstallPath")
value, _ = winreg.QueryValueEx(key, "")
return os.path.join(value, "python.exe")
except FileNotFoundError:
return None
python_path = find_python()
if python_path:
print(python_path) # Выведет, например, C:\Python310\python.exe
else:
print("Python не найден в реестре")C:\Python310\python.exe
Использование Docker контейнера с Python - ошибка 9009 при запуске
Внутри контейнера Linux код 9009 не встречается, но при попытке запустить Windows-контейнер с Python может возникнуть. Убедитесь, что образ содержит python в PATH:
FROM python:3.10-windowsservercore
CMD ["python", "app.py"]
# Если при сборке или запуске выходит код 9009 - проверьте, что python.exe находится в PATHЗапуск Python из C# с перенаправлением вывода и обработкой кода 9009
using System;
using System.Diagnostics;
class Program
{
static void Main()
{
ProcessStartInfo psi = new ProcessStartInfo
{
FileName = "C:\\Python39\\python.exe",
Arguments = "script_with_error.py",
RedirectStandardOutput = true,
RedirectStandardError = true,
UseShellExecute = false
};
using (Process p = Process.Start(psi))
{
p.WaitForExit();
if (p.ExitCode == 9009)
{
string error = p.StandardError.ReadToEnd();
Console.WriteLine($"Код 9009: {error}");
}
}
}
}Код 9009: 'python' не является внутренней или внешней командой
Использование модуля subprocess с проверкой кода возврата (Python)
import subprocess
import sys
try:
result = subprocess.run(
[r"C:\Python39\python.exe", "nonexistent.py"],
check=True,
capture_output=True
)
except subprocess.CalledProcessError as e:
if e.returncode == 9009:
print("Ошибка 9009: проблема с исполняемым файлом Python")
else:
print(f"Другая ошибка: {e.returncode}")Ошибка 9009: проблема с исполняемым файлом Python