Невозможно установить расширение pgvector для PostgreSQL [Windows]

Я пытаюсь использовать PostgreSQL в качестве векторной базы данных. И для того же я установил PostgreSQL в свою систему Windows, используя инструкции, представленные здесь.

Чтобы установить pgvector, я следовал инструкциям, приведенным на этой странице.

Я пытаюсь выполнить эту настройку на удаленном компьютере с ОС Windows Server 2016. Версия PostgreSQL: 15.3.

Мне не удалось успешно установить расширение pgvector. При выполнении команды получаю следующую ошибку:

Неустранимая ошибка C1083: невозможно открыть включаемый файл crtdefs.h: такого файла или каталога нет.

Я также попробовал установить с помощью Conda. команда: conda install -c conda-forge pgvector Ошибка, возникающая при создании векторного расширения после установки с использованием conda, выглядит следующим образом:

РЕДАКТИРОВАТЬ 1: Обновление сообщения на основе следующего вопроса.

Где в вашей системе находится файл crtdefs.h? (Их может быть несколько.) Каково значение переменной среды INCLUDE при вызове cl.exe?

Местоположение файла crtdefs.h: C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.36.32532\include

Раньше у меня не было добавленной переменной env INCLUDE. Теперь я добавил переменные среды INCLUDE и LIB на основе некоторых подобных ошибок (невозможно открыть файл include/lib). Мне пришлось соответственно добавить пути включения и библиотеки из Microsoft Visual Studio и Windows Kits. Теперь после запускаnmake /F Makefile.winкоманда, я получаю следующую ошибку.

фатальная ошибка LNK1104: невозможно открыть файл «vector.dll»

Файл вектора.dll отсутствует в клонированной папке pgvector.

Мы будем очень признательны за любую помощь в завершении установки с помощью nmake или устранении ошибки при создании векторного расширения. Спасибо!

2 ответа

У меня возникла та же проблема, когда я пытаюсь установить векторное расширение в Windows локально и, наконец, решил эту проблему.

Основной причиной этой проблемы является среда сборки C++, поскольку все включенные компоненты настроены неправильно, поскольку на локальном компьютере не была установлена ​​Visual Studio (разработка dotnet на C#), обычно устанавливался только VSCode, а не dotnet C#, поэтому в нем отсутствует много настраивать.

Чтобы это исправить, вам нужно будет загрузить инструменты сборки отсюда: «Инструменты сборки для Visual Studio 2022» https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2022 .

Репозиторий pgvector подскажет вам настроить локальную среду через

Вызовите «C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat»

Но в некоторых случаях путь установки может быть таким:

Вызовите «C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvars64.bat»

После успешного запуска он устранит все проблемы, связанные с отсутствующими включаемыми файлами сборки.

убедитесь, что вы запускаете CMD в режиме администратора, так как для окончательной установки потребуется скопировать скомпилированный файл DLL в папку postgresql, для которой требуется разрешение администратора.

убедитесь, что вы установили среду, в которой установлен ваш postgresql

установите "PGROOT=C:\Program Files\PostgreSQL\15"

перейдите в папку с исходным кодом pgvector.

это для компиляции DLL

nmake /F Makefile.win

это для копирования файлов SQL и DLL в postgresql

nmake /F Makefile.win установить

Основная ошибка — отсутствие запуска настройки env:

Вызовите «C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvars64.bat»

Убедитесь, что в ваших инструментах сборки есть файл vcvars64.bat.

Надеюсь это поможет

вам следует установить правильный Win SDK, если вы видите эту ошибку. VS2019 + выберите установщик VS:

  • настольная разработка
    • выберите Win 10 SDK v..16..
Другие вопросы по тегам