arnold-usd icon indicating copy to clipboard operation
arnold-usd copied to clipboard

UnicodeDecodeError

Open furby-tm opened this issue 5 years ago • 5 comments

Describe the bug

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x83 in position 4: invalid start byte

This bug occurs when attempting to run the build with python 3.7 and Arnold 6. Seems like there needs to be a way to check utf codecs.

The schema generated is the following:

#usda 1.0
(
"This file describes the Arnold USD schemas."
    subLayers = [
        @usd/schema.usda@,
        @usdGeom/schema.usda@,
        @usdShade/schema.usda@,
        @usdLux/schema.usda@
    ]
)
over "GLOBAL" (
    customData = {
        string libraryName = "usdArnold"
        string libraryPath = "./"
        string libraryPrefix = "Usd"
        string tokensPrefix = "UsdArnold"
    }
) {
}
class ArnoldCamera "ArnoldCamera"(
    inherits = [</Camera>]
) {
    vector3f[] position
    vector3f[] look_at
    vector3f[] up
    matrix4d[] matrix

And thus it stops here:

	Error in 'textFileFormatYyerror' at line 3111 in file pxr/usd/sdf/textFileFormat.yy : 'syntax error at '' in </ArnoldCamera> on line 27 in file /home/furby/arnold-usd/build/linux_x86_64/gcc_opt/usd-0.19.7_arnold-6.0.1.0/schemas/schema.usda

furby-tm avatar Jan 14 '20 00:01 furby-tm

Arnold-USD explicitly requires Python 2.7, and unless USD/master supports Python 3+ we need to stick to 2.7 version.

I'm marking the issue blocked until USD moves forward with its python version.

sirpalee avatar Jan 15 '20 10:01 sirpalee

Since we are moving to cmake, meaning there is less python code to modify for python3, I'm unblocking this ticket.

@tyler-furby could you please give me more information about how you are building USD and Arnold - USD in your setup, so I can try to reproduce your problem locally? Last time I checked USD itself, it looked pretty much hardcoded to python 2.7 (some of the cmake scripts). Was that an incorrect assumption or you have local modifications?

sirpalee avatar Feb 13 '20 22:02 sirpalee

I locally modified it to move it over to Python 3. I believe it has to do with utf encoding issues with the AtPythonString class in the Arnold SDK. The class is defined in %Arnold_HOME%\python\arnold\ai_types.py.

It appears to be hardcoded to utf-8 which I don't believe will work for .usda generation

furby-tm avatar Feb 13 '20 22:02 furby-tm

@sirpalee Hey there, how's it going? Went to go build the delegate and it appears the python build is still set for python 2. I presume for building on python 3 we're going full cmake?

How well rounded out is the python 3 version of the delegate?

furby-tm avatar Dec 04 '20 03:12 furby-tm

Hi @furby-tm, yes, correct, both the scons and the cmake build system are python 2. Otherwise, none of the compiled plugins are explicitly using python, except the python bindings for the schemas, so everything should work just fine independently of which python you used to build USD.

Let's move the discussion to #509. I know it's an older ticket with no activity, but knowing your needs helps us deciding what to tackle next.

sirpalee avatar Dec 04 '20 05:12 sirpalee

Issue synced internally to ARNOLD-13230

Closing as arnold-usd is now compatible with python 3.

cpichard avatar Feb 16 '24 11:02 cpichard