Я хотел бы предоставить формулу Homebrew для проекта CMake, который создает и устанавливает библиотеку C ++ вместе с ее привязками Python, написанными с использованием pybind11. Формула в идеале должна работать при запуске простого
cmake --build . --target install
Этот процесс установки отлично работает локально, но использование формулы Homebrew создает проблему в каталоге установки для привязок Python: в то время как заголовки и библиотеки устанавливаются в соответствующий каталог в Cellar, обозначенном # {prefix}, привязки должны быть в каталог сайтов-пакетов, видимый Python. Я получаю такой каталог в CMake, используя
install(TARGETS pyariadne DESTINATION ${Python_SITEARCH})
но похоже, что каталог не доступен для записи Homebrew, возвращая Operation not permitted
. Определение каталога установки по следующим
execute_process(COMMAND python3 -m site --user-site OUTPUT_VARIABLE INSTALL_DIR)
также не работает, поскольку Homebrew определяет временный пользовательский сайт в / tmp, и, следовательно, любая установленная там библиотека впоследствии удаляется.
Как мне установить все из Homebrew, не прибегая к изменению прав доступа к каталогам? Я бы хотел избежать упаковки для pypi и использования pip для отдельной установки привязок.
РЕДАКТИРОВАТЬ (пример вывода, задействованные каталоги):
[109/110] Install the project...
-- Install configuration: "Release"
-- Installing:
/usr/local/Cellar/[email protected]/3.9.2_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pyariadne.so
CMake Error at cmake_install.cmake:49 (file):
file INSTALL cannot copy file
"/tmp/ariadne-20210305-1763-ggejxl/ariadne-2.1-rc2/build/pyariadne.so" to
"/usr/local/Cellar/[email protected]/3.9.2_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pyariadne.so":
Operation not permitted.
Каталог /usr/local/Cellar/[email protected]/3.9.2_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages
ссылается на /usr/local/lib/python3.9/site-packages
. У первого есть пользователь lgeretti: staff, у второго - пользователь lgeretti: admin.
Эта проблема возникает не только на моем компьютере, но я также проверяю ее на компьютере macos: latest GitHub Actions, где единственный необходимый шаг - это заварить установку пакета.
brew doctor
и убедились, что проблем с установкой нет? - person Alex Reinking   schedule 06.03.2021