Установите расширение Python в определенное место - PullRequest
6 голосов
/ 15 июня 2011

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

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

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

Ответы [ 2 ]

9 голосов
/ 22 июня 2011

Я наконец нашел ответ!Опция -b (или --build_lib)

python setup.py build_ext -b ../some/specific/place/
0 голосов
/ 15 июня 2011

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

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

python setup.py install --home=../some/specific/place \
                        --install-purelib=. \
                        --install-platlib=.
...