BMesh mania.

It seems like BMesh integration is breaking a lot of scripts, including the obj importer with UVs. In this case the problem is that used to return a MeshTextureFaceLayer, but now returns a MeshTexturePolyLayer instead. The collection of MeshTextureFaceLayer is now called Mesh.tessface_uv_textures instead. It is actually straightforward to get the corresponding facelayer from the polylayer:

    uvtex = = True
    tessUvtex =   

One can set uv coordinates of a tesselated face, like this:[0].uv1 = (0.3,0.4)

Unfortunately, this does not affect the UVs in the viewport.

To figure out what is going on, I made a little experiment with the default cube in Blender 2.62.0 r44464. It has no faces, but it has polygons.

>>> me =
>>> me['Cube']

>>> list(me.vertices)

>>> list(me.edges)

>>> list(me.faces)

>>> list(me.polygons)

>>> p = me.polygons[0]
>>> list(p.vertices)
[0, 1, 2, 3]

Could it be enough to sobstitute “faces” with “poligons” in the scripts to adapt them?