Я пытаюсь написать сценарий setup.py для проекта Python. Я хочу установить этот проект в виртуальную среду pyenv. Итак, используя pyenv 2.4.18, я попробовал следующее:
Код: Выделить всё
pyenv virtualenv 3.12.7 my_env
pyenv local my_env
pip install --upgrade pip
pip install numpy
python setup.py install
внутренне вызывает CMake, который создает расширение Python, которому нужны заголовки разработки NumPy, я указываю CMake на Python, используя f"-DPython3_EXECUTABLE={sys.executable}", который в данном случае оценивается как ~/.pyenv /versions/my_env/bin/python3 и все работает гладко
НО если я устанавливаю, попробуйте установить с помощью pip install ., sys.executable вместо этого оценивается ~/.pyenv/versions/3.12.7/envs/my_env/bin/python и CMake завершается с ошибкой:
Код: Выделить всё
Could NOT find Python3 (missing: Python3_NumPy_INCLUDE_DIRS NumPy) (found version "3.12.7")
Для меня это просто безумие, поскольку ОБЕИ эти версии Python являются символическими ссылками на один и тот же /Users/timonicolai/.pyenv/versions/3.12.7/bin/python . Почему CMake может разрешить зависимость NumPy в одном случае, но не в другом, и как исправить установку через pip?
Подробнее здесь:
https://stackoverflow.com/questions/792 ... y-in-pyenv