Установите расширение Python в определенное место

В моем проекте используется чистый код Python и расширения Cython для оптимизации и связывания с библиотеками C. У меня есть одно дерево исходных текстов для моего проекта Python и одно для кода Cython и C. Каждое из моих расширений Cython имеет файл setup.py для их создания. Собственно для каждого расширения я делаю следующее:

python setup.py build_ext --inplace
mv myext.so ../some/specific/place/

Есть ли способ указать distutils, где установить мое расширение (если возможно, используя относительный путь), вместо использования --inplace, за которым следует mv? Использование опции --prefix нехорошо, поскольку она создает иерархию папок, которые мне не нужны.


person Charles Brunet    schedule 15.06.2011    source источник
comment
Не могли бы вы выложить содержимое вашего setup.py?   -  person Cédric Julien    schedule 16.06.2011


Ответы (2)


Я наконец нашел ответ! Параметр -b (или --build_lib)

python setup.py build_ext -b ../some/specific/place/
person Charles Brunet    schedule 22.06.2011
comment
Спасибо - просто обратите внимание, что это --build-lib, а не --build_lib - person Giswok; 13.01.2016

Возможно, вы могли бы использовать функцию distutils альтернативную установку, которая позволит вам удалите ненужные папки иерархии.

Попробуйте что-то вроде этого:

python setup.py install --home=../some/specific/place \
                        --install-purelib=. \
                        --install-platlib=.
person Cédric Julien    schedule 15.06.2011
comment
При этом установите мое расширение в текущий каталог, например, с --inplace. - person Charles Brunet; 15.06.2011