arnold-usd
arnold-usd copied to clipboard
UnicodeDecodeError
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
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.
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?
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
@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?
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.
Issue synced internally to ARNOLD-13230
Closing as arnold-usd is now compatible with python 3.