PixarAnimationStudios / OpenUSD

Universal Scene Description
http://www.openusd.org
Other
5.56k stars 1.15k forks source link

Make the python bindings available via pip #1931

Open lpapp-foundry opened 2 years ago

lpapp-foundry commented 2 years ago

Description of Issue

The idiomatic python distribution is via pip. In want of this, it seems that DCC businesses embed USD python into their products for "convenience".

This is really suboptimal practice and they mostly only have to do so because Pixar does not expose the USD python bindings to pip. Otherwise, they could tell their customers to use the regular pip install usd.

The DCC users would still need to install other python modules via pip, like PySide, matplotlib, numpy, tensor flow, etc. So, this workaround in DCCs is not completely helpful.

dgovil commented 2 years ago

There is https://pypi.org/project/usd-core/ if that helps for using it in a generic case

That said, DCC's aren't always aligned on things like schemas, library versions etc... and therefore would probably still want to provide their own copy of USD. I don't think it's very feasible for them to use a generic USD build while providing stability guarantees against the versions of libraries they use.

e.g consider OpenImageIO , Boost, Qt or TBB. These may change versions slightly between DCC's and they may have their own bespoke patches.

lpapp-foundry commented 2 years ago

I did not know that you already offer your python bindings via pip. Good to know - thanks!

It would be helpful to mention this in your documentation. This is the first time I hear about it. I should be able to use this first-class citizen installation method prior to getting to the tutorials, I feel: https://graphics.pixar.com/usd/release/tut_usd_tutorials.html

Regarding the myriad of version options - https://vfxplatform.com is meant to address this.

It is ok to use different versions from pip. I do not see the issues with that. As you say, different DCCs can depend on different versions of USD python.

That is mainstream and idiomatic. One can set the version in the requirements.txt. That is pythonic.

sunyab commented 1 year ago

Filed as internal issue #USD-7469