Почему говорится, что модуль FBX не найден, даже если он установлен? - PullRequest
0 голосов
/ 16 октября 2019

Примечание * Я получил этот код из Интернета

Я пытаюсь запустить скрипт python для проверки размеров текстуры в файле fbx. Я объявил список измерений, которые можно использовать, и если размеры используемой текстуры не соответствуют указанным размерам, тогда код вернет ошибку.

Но когда я пытаюсь запустить код, python не может найти модуль FBX. Это дает мне эту ошибку:

Traceback (most recent call last):
  File "C:\Users\anirudh.b.SMARTAPT\Downloads\htm-fbx-introduction_to_the_python_fbx_sdk (2)\fbxTextureChecker-p1.py", line 1, in <module>
    import fbx
ModuleNotFoundError: No module named 'fbx'

Я искал проблему в Интернете и не нашел ничего полезного. Я использую Python 3.7 и все необходимые модули установлены через pip. Я установил FBX SDK и привязку Python через установщик и скопировал необходимые файлы в пакеты Python37 \ Lib \ site-packages (пробовал как 64-битные, так и 86-битные файлы).

Возможно, проблема связана смоя версия на питоне. Нужно ли использовать какую-то другую версию? Есть ли способ заставить скрипт работать в самом Python3.7?

import fbx
import Image
import sys

filepath = r'C:\Autodesk\cubeMan.fbx'
validTextureDimensions = [ (256, 256), (512, 512) ]
manager = fbx.FbxManager.Create()
importer = fbx.FbxImporter.Create( manager, 'myImporter' )
status = importer.Initialize( filepath )

if status == False:
    print('FbxImporter initialization failed.')
    print('Error: %s' % importer.GetLastErrorString())
    sys.exit()

scene = fbx.FbxScene.Create( manager, 'myScene' )
importer.Import( scene )
importer.Destroy()
textureArray = fbx.FbxTextureArray()
scene.FillTextureArray( textureArray )
invalidTextures = {}

for i in range( 0, textureArray.GetCount() ):        
    texture = textureArray.GetAt( i )
    if texture.ClassId == fbx.FbxFileTexture.ClassId:
        textureFilename = texture.GetFileName()
        image = Image.open( textureFilename )
        width, height = image.size
        if (width, height) not in validTextureDimensions:
            invalidTextures[ textureFilename ] = (width, height)
            print('Invalid dimensions (%sx%s) - %s\n' % (width, height, textureFilename ))
...