Psql не является внутренней или внешней командой исполняемой программой или пакетным файлом

Обновлено: 07.07.2024

Вы добавили двоичные файлы Postgres к своему пути в Windows? Казалось бы, это вероятная причина вашей проблемы.

  1. Windows 10 и Windows 8
  2. В поиске найдите и выберите: Система (Панель управления)
  3. Нажмите на ссылку Расширенные настройки системы.
  4. Нажмите Переменные среды.
  5. В разделе Системные переменные найдите переменную среды PATH и выберите ее. Нажмите Изменить.
  6. Если переменная среды PATH не существует, нажмите New.
  7. В окне Редактировать системную переменную (или новую системную переменную) укажите значение переменной среды PATH.
  8. Нажмите ОК.
  9. Закройте все оставшиеся окна, нажав ОК.
  10. Откройте окно командной строки и запустите свой код Java. (в нашем случае PSQL)

Вы бы добавили папку bin в свой путь, а не просто отдельный двоичный файл. Для справки также см. Этот вопрос: Как установить переменную пути Postgres в Windows 10

1 Репутация автора

После каждой установки сервера postgresql необходимо установить профиль bash для соответствующих двоичных файлов postgres, двоичные файлы postgres по умолчанию находятся в / usr / Version / bin, например /usr/pgsql-9.6/bin.

Я не могу установить PostgreSQL, сделал все по инструкции, уже три раза сносил и заново переустанавливал, инструкция НЕ РАБОТАЕТ, или устарела. Система Windows 10.

Скачал, все есть в папке C:Program FilesPostgreSQL10

setx PATH "%PATH%;C:Program FilesPostgreSQL10in"

В ответ комп пишет: "Предупреждение. Сохраненные данные будут усечены до 1024 знаков. Успех. Указанное значение сохранено."

Далее, по инструкции закрыл командую строку, перезагрузился. И. Н-И-Ч-Е-Г-О, в командной строке при попытке ввести хотя бы psql выдается "psql" не является внутренней или внешней командой, исполняемой программой или пакетным файлом.

Ну что еще то надо? Руки опускаются от этих бесконечных инструкций, которые не работают! Помогите, гуру Джанги….

(Я знаю, что на самом деле это не значит, но я не могу задавать вопросы на Stack Exchange)

1 ответ

Предполагая, что вы правильно установили программное обеспечение SQL, если командная строка вернется с:

(name of the software) is not recognized as an internal or external command, operable program or batch file.

это означает, что ваше программное обеспечение, вероятно, не помещается в папку, определенную переменной окружения %PATH% . С помощью этого последнего можно вызвать исполняемые приложения, не определяя их полный путь. Затем, чтобы решить эту проблему, вы можете:

  1. определить полный путь к файлу .exe в вашем пакетном скрипте
  2. или переместите файл .exe в каталог, определенный %PATH%

Вы можете увидеть список каталогов, определенных этой переменной среды, вызывающей команду set с терминала или открытие Control Panel > System > Advanced > Environment Variables

Что касается Postgres, я продолжаю получать эту ошибку несколько раз, хотя я уже установил местоположение папки bin в переменной пути в Windows 8. Что-то еще мне не хватает?

(Я не могу публиковать фотографии, так как у меня недостаточно репутации)

Просто обновление, потому что я пробовал его в Windows 10, вам нужно указать следующий путь: ;C:\Program Files\PostgreSQL\9.5\bin ;C:\Program Files\PostgreSQL\9.5\lib

Вы можете сделать это либо через CMD, используя set PATH [the path] или из моего

компьютер => свойства => расширенные настройки системы => переменные среды => системные переменные

Затем ищите путь.

Важно: не заменяйте уже имеющиеся ПУТЬ, просто добавьте один рядом с ними следующим образом ;C:\Program Files\PostgreSQL\9.5\bin ;C:\Program Files\PostgreSQL\9.5\lib

Обратите внимание : в Windows 10, если вы выполните следующее: компьютер => свойства => дополнительные системные настройки => переменные среды => системные переменные> выберите ПУТЬ, вы фактически получите возможность добавить новую строку. Нажмите Edit, добавьте расположение папок / bin и / lib и сохраните изменения.

Затем закройте командную строку, если она открыта, а затем запустите ее снова. попробуйте psql --version Если он дает вам ответ, то все в порядке, если нет, попробуйте echo %PATH% и посмотрите, был ли добавлен заданный вами путь или нет, и правильно ли он добавлен.

Всегда лучше установить предыдущую версию или при установке убедитесь, что вы указали '/ data' в отдельной папке каталога «C: \ data»

Простое решение, которое не упоминалось в этом вопросе: перезагрузите компьютер после объявления переменной пути.

Мне всегда приходится перезагружать - путь никогда не обновляется, пока я не сделаю это. И когда я перезапускаю, путь всегда обновляется.

Найдите свой двоичный файл, в котором он сохранен. получить путь в конечной шахте

Затем найдите свой локальный путь к данным пользователя, он в основном

Теперь все, что нам нужно, это ввести следующую команду в пути двоичного терминала:

Введите этот путь в системную переменную среды .

В этом случае я использую версию 10. Если вы проверите папку postgres, вы увидите свои текущие версии.

В моем случае я использовал следующие строки в отдельных строках:

Даже если уже немного поздно, я решил проблему PATH, удалив все пробелы.

У меня работает сейчас.

Убедитесь, что путь действительно ведет к исполняемым файлам. Я использую версию 11, и она не работала, пока она не была указана в качестве пути:

Возможно, так устроена версия 11, или я как-то испортил установку, но с тех пор у меня не было проблем.

Если вы попробовали все ответы, но голова все еще кружится, не забудьте сменить версию на ту, которую вы скачали.

Например, не копируйте просто

Я кружил головой. Надеюсь это поможет.

У меня была ваша проблема, и она снова заработала (в Windows 7).

Моя установка сначала действительно работала. Я установил postgres, а затем настроил системные переменные PATH с помощью >. Ключевое слово psql в командной строке не дало ошибок.

Я удалил указанные выше переменные PATH по одной, чтобы проверить, действительно ли они нужны. Psql продолжал работать после того, как я удалил путь к lib, но перестал работать после того, как я удалил путь к bin. Когда я вернул bin, он все еще не работал, то же самое и с lib. Я закрыл и снова открыл командную строку между попытками и проверил путь. Проблема сохранялась, хотя путь был идентичен тому, каким он был при работе. Я его перепрошил.

Я удалил и переустановил postgres. Проблема не исчезла. Это, наконец, сработало после того, как я удалил пробелы между "; C: . " в путях и повторно сохранил.

Не уверен, действительно ли виноваты были пробелы. Возможно, переменные среды просто нужно было изменить и обновить после установки.

Я также все еще не уверен, нужны ли пути как lib, так и bin, поскольку, похоже, для старых конфигураций пути существует какая-то устаревшая память. Однако я не хочу проверять это снова.

Возможно, ваш сервер не запускается автоматически в Windows 10, и вам нужно запустить его самостоятельно после установки пути Postgresql, используя следующую команду в cmd:

Вы должны находиться в каталоге «C: \ Program Files \ PostgreSQL \ 11.4 \ bin», чтобы выполнить указанную выше команду.

enter image description here

Для работы с psql вам все еще нужно находиться в каталоге bin

Что касается Postgres, я продолжаю получать эту ошибку несколько раз, хотя я уже установил расположение папки bin в переменной пути в Windows 8. Есть ли что-то еще, что я пропускаю?

(Я не могу публиковать фотографии, так как у меня недостаточно репутации)

Просто обновление, потому что я пробовал его в Windows 10, вам нужно указать следующий путь: ;C:\Program Files\PostgreSQL\9.5\bin ;C:\Program Files\PostgreSQL\9.5\lib

Вы можете сделать это либо через CMD, используя set PATH [the path] , Либо из моего

компьютер => свойства => дополнительные параметры системы => среда Переменные => Системные переменные

Важно: не заменяйте уже существующие PATH, просто добавьте один рядом с ними следующим образом: ;C:\Program Files\PostgreSQL\9.5\bin ;C:\Program Files\PostgreSQL\9.5\lib

Обратите внимание : В Windows 10, если вы выполните следующее: компьютер => свойства => дополнительные параметры системы => переменные среды => системные переменные> выберите PATH, вы фактически получите возможность добавить новую строку. Нажмите «Правка», добавьте папки/bin и/lib и сохраните изменения.

Затем закройте вашу команду Prompt, если она открыта, и затем запустите ее снова Попробуйте psql --version Если он даст вам ответ, то вы можете пойти, если не попробуете echo %PATH% , и посмотреть, был ли добавлен заданный вами путь или нет, и если он добавлен, он добавлен правильно или нет.

У меня была ваша проблема и она снова заработала (на windows 7).

Поначалу моя установка действительно сработала. Я установил postgres и затем установил системные переменные PATH с помощью C:\Program Files\PostgreSQL\9.6\bin; C:\Program Files\PostgreSQL\9.6\lib . Ключевое слово psql в командной строке не выдало ошибок.

Я удалял переменные PATH выше одной за раз, чтобы проверить, действительно ли они обе нужны. Psql продолжал работать после того, как я удалил путь lib, но перестал работать после того, как я удалил путь bin. Когда я вернул bin, он все еще не работал, и то же самое с lib. Я закрыл и снова открыл командную строку между попытками, и проверил путь. Проблема сохранялась, хотя путь был таким же, как и при работе. Я заново вставил это.

Я удалил и переустановил postgres. Проблема осталась. Наконец, это сработало после того, как я удалил пробелы между "; C: . " в путях и снова сохранил.

Не уверен, что это были действительно места, которые были виновником. Возможно, переменные окружения просто необходимо было изменить и обновить после установки.

Я также до сих пор не уверен, нужны ли пути как lib, так и bin, так как для старых конфигураций путей, похоже, есть какая-то затяжная память. Я не хочу проверять это снова, хотя.

Причины ошибки «Не является внутренней или внешней командой» при выполнении команд в командной строке Windows 10 и Windows 11

Для того, чтобы понять суть ошибки, давайте рассмотрим, что происходит при выполнении команды в командной строке, в качестве примера будем использовать такой код:

Не является внутренней или внешней командой, исполняемой программой или пакетным файлом в командной строке

  1. В случае, если «команда» является собственной встроенной командой консоли (в качестве примера — cls), она выполняется с заданными параметрами.
  2. Если «команда» — это какой-то файл .exe, .cmd, .bat или иной, например, pip, python или adb, выполняется попытка его запуска из расположения, где запущена командная строка (выделено на изображении ниже) или из расположений, добавленных в системную переменную PATH (о которой поговорим подробнее далее). При удачном запуске и правильно переданных параметрах команда выполняется.

Отсюда следуют наиболее распространённые причины появления ошибки при выполнении команды:

  • Самая распространённая причина — отсутствие исполняемого файла в папке, где запущена командная строка и в папках, содержащихся в PATH.
  • Ошибки при написании команды: при ошибке в имени файла, он не будет найден, что и приведёт к указанной ошибке.
  • Файл отсутствует где-либо, например, вы пробуете использовать telnet, в то время, когда соответствующий компонент Windows не установлен.
  • Редко — запускаемый через командную строку файл действительно не является исполняемой программой: изначально сам по себе или из-за повреждений.

Теперь о том, что делать в рассматриваемой ситуации.

Для исправления ошибки «Не является внутренней или внешней командой, исполняемой программой или пакетным файлом» в зависимости от ситуации можно использовать следующие подходы.

Переход к папке с исполняемым файлом в командной строке

Если выполнение команды требуется не на регулярной основе, достаточно перейти в командной строке в папку, содержащую нужный файл, делается это следующим образом:

  1. Например, мы знаем, что python.exe для последней версии Python на момент написания этой статьи располагается в папкеpip.exe — там же во вложенной папке Scripts (если окажется не ясным, как попасть в эту папку, процесс показан в видео ниже), adb.exe — где-то в папке с platform-tools и так далее. Скопируйте этот путь, сделать это можно из адресной строки проводника.
  2. Если командная строка запущена на том же диске, где находится нужный исполняемый файл, введите команду вида:
  3. Если командная строка запущена на диске C:, а исполняемый файл находится на другом диске, то перед 2-м шагом используйте команду вида (здесь D меняем на нужную букву диска) D: с последующим нажатием Enter.
  4. Введите нужную команду, которая ранее сообщала об ошибке — теперь она должна выполниться успешно.

Добавление папки с программой в системную переменную среды PATH

В случае, когда использование команд требуется регулярно, например, для git, разумным будет добавить папку с этим исполняемым файлом в PATH, чтобы затем в любой момент времени выполнять команды, независимо от того, в какой папке открыта командная строка:

Примечание: если ошибка возникает при использовании команд python, обратите внимание, что при первоначальной установке вам предложат добавить необходимые пути в PATH (отметка Add Python to PATH), то же самое часто бывает и при установке других программ:

Добавление Python в PATH при установке

Установка недостающих компонентов

Иногда проблема возникает из-за того, что нужный файл попросту отсутствует на компьютере:

Включение клиента Telnet

  • Вы пробуете использовать команды telnet, но не зашли в Панель управления —Программы и компоненты — Включение или отключение компонентов Windows и не включили «Клиент Telnet».
  • Запускаете команды pyinstaller, но предварительно не установили его командой pip install pyinstaller
  • Пробуете использовать команды adb.exe, но не установили необходимые компоненты Android SDK Platform Tools.

Аналогичная ситуация может быть и для многих других, не входящих в стандартную поставку Windows 10 и Windows 11 компонентов, например, java.

Если ошибка возникает при запуске системных инструментов Windows

Видео инструкция

Надеюсь, статья и видео помогли разобраться с проблемой и помогли в её решении. Остаются вопросы? — задавайте их в комментариях, я постараюсь ответить.

Читайте также: