Vou nesta parte da série de artigos mostrar como coloquei o módulo sqlite3 no escopo padrão do Blender, recorde-se que estou usando o Blender 2.46 e o Portable Python 1.0, ambos rodando directamente do PenDrive, o que impossibilita o chamamento automático dos módulos externos á Engine. Se é novo por aqui, clique e veja a primeira parte da implementação do banco de dados sqlite3 na gam engine do blender
Antes de começarmos, você precisa saber como funciona a importação de módulos em Python: Para que um módulo possa ser importado, ele deve estar dentro de um directório contido na variável path do Python, você pode saber mais sobre path acessando a aula do nosso curso de programação em Python, que fala sobre módulos em Python.
Agora que já sabe como funciona o sistema de módulos em Python, podemos ir ao Game Engine realizar o nosso primeiro teste!
Pois é, fui ao Game Engine e a primeira ideia que apareceu foi: Talvez sqlite3 já é um módulo nativo da Engine, o que não seria de estranhar, pois é normal todo jogo necessitar de um banco de dados. Então escrevi um pequeno script na no editor de textos do blender:
import sqlite3
Pressionei o ALT+P habitual para testar o script, e ai apareceu: a mensagem de erro:
No module named sqlite3.
Ok, o Blender não possui suporte nativo ao módulo sqlite3. Adicionar o directório raiz do Python ao path do Windows também não deu em nada, então decidi copiar a pasta do sqlite3 que se encontra no directório lib do Python para o directório raiz do Blender, visto que este está no path. Agora quando fui testar o mesmo script acima, a mensagem foi:
No module named _sqlite3
Há então o módulo sqlite3, importa um outro módulo, o _sqlite3! Então vamos procurar este módulo. Navegando pelos directórios do Python, fui encontrar este módulo dentro do directório DLL, chama-se _sqlite3.pyd. Copiei este módulo para dentro do directório sqlite3 que eu tinha acabado de colocar na raiz do Blender e fui fazer o teste do script novamente. Desta vez a mensagem não foi do Blender, mas sim do Windows e dizia o seguinte:
This Application failed to start because sqlite3.dll was not found....
Só isso! Então vamos copiar a DLL que se encontra dentro do directório DLL do Python para o nosso directório sqlite3 no Blender. Fazendo o teste de novo, nenhuma mensagem de erro nem nada, e ai veio o momento de suspense: Será que funcionou? Vamos fazer um outro teste para provar isso, seguindo a a logica que se segue( lógica que se segue??? como seguir uma lógica se ela se segue?): Se o import funcionou, o Blender executará a linha seguinte do script, então vamos criar um novo script, desta vez com duas linhas:
import sqlite3 print ‘funcionou’
E imagina o que apareceu na consola: Funcionou!!! Mas espera um pouco: Nem todos os módulos que funcionam comALT+P podem funcionar na Engine! Então vamos criar um logicbric para o cubo padrão, só para ver se ainda funciona.E finalmente o susto passou! O passo seguinte será criar um jogo de teste que use um banco de dados, mas para isso tenho de baixar a documentação oficial do sqlite3!
Comentários Recentes