Как сообщить Python waf, где разместить пакет? Может ли он работать с virtualenv?

Я пытаюсь установить готовый пакет waf (py2cairo) в каталог по своему выбору. В идеале в моем virtualenv site-packages. Это должно быть просто, но я не могу заставить waf сделать это.

$ sudo ./waf install
  ./options()
Waf: Entering directory `/tmp/py2cairo-1.10.0/build_directory'
  ./build()
  src/build()
- install /usr/local/include/pycairo/pycairo.h (from src/pycairo.h)
+ install /usr/local/lib/python2.6/site-packages/cairo/_cairo.so (from build_directory/src/_cairo.so)
+ install /usr/local/lib/pkgconfig/pycairo.pc (from pycairo.pc)
Waf: Leaving directory `/tmp/py2cairo-1.10.0/build_directory'
- install /usr/local/lib/python2.6/site-packages/cairo/__init__.py (from src/__init__.py)
+ byte compiling '/usr/local/lib/python2.6/site-packages/cairo/__init__.py'
'install' finished successfully (0.130s)

Я хочу изменить /usr/local/lib/python2.6/site-packages/cairo/__init__.py на что-то по своему выбору. Я не могу найти параметр конфигурации, который делает это для меня.

Команда --prefix добавляет к строке префикс, но не изменяет его. Кажется, --destdir не имеет значения.


person Joe    schedule 13.04.2012    source источник
comment
Это был ленивый минус. Что не так с вопросом?   -  person Joe    schedule 13.04.2012


Ответы (2)


Редактировать: если разработчик не реализовал такую ​​опцию, --prefix это все, что вы получаете.

Вы можете сами покопаться и добавить такую ​​опцию, которая использует методы .install_as , .symlink_as, .install_files.

Подробнее см. в wafbook, глава 4.2.2.

person drahnr    schedule 13.04.2012
comment
Спасибо большое. У меня было ощущение, что это может быть так. Я хотел бы, чтобы все было как можно проще, потому что 1 - я хочу иметь возможность установить это автоматически для простоты настройки сервера и 2 - я не обязательно знаю, где находится мой каталог пакетов сайта, если я использую virtualenv - person Joe; 15.04.2012
comment
Я принимаю свою судьбу и разрешаю устанавливать ее в глобальные пакеты сайта. - person Joe; 16.04.2012

Есть аргумент, который вы можете использовать в сочетании с .waf install, чтобы указать местоположение:

./waf install --destdir=/tmp/package

person Brian Monroe    schedule 05.09.2015