Невозможно установить расширение 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..