Здравствуйте.
Есть питоновское приложение (проект на pyramid), сделанное в виде классического пакета с setup.py. И нужно его разместить на сервере, в отдельном virtualenv-е, причем так, чтобы установка шла через setup.py install, но некоторые директории из проекта (статика с картинками) находились в другом месте, в document-root.
Решаю сделать симлинк, т.е. после установки через setup.py install делаю что-то такое:
ln -s /home/user/project/env/lib/python-3.3/site-packages/projectname/static /home/user/project/www/static
Но хочется всё автоматизировать через fabric, и учитывая, что версии питона и пути могут быть разные, хардкодить ничего не хочется.
Пока что вышло что-то такое:
# fabfile.py
# .....
static_path = run('env/bin/python -c "import pkg_resources;print(pkg_resources.resource_filename(\'projectname\', \'static\'))"')
run('ln -s {} {}'.format(static_path, document_root_static))
# ...
Выглядит как-то криво, но работает. Может кто подскажет более красивое решение?