[Bf-committers] bpy.dll

Paolo Basso pa.basso at gmail.com
Fri Mar 25 19:10:02 CET 2011


Is there a way/bpy function which allows to open Blender interface and get
its reference?

I'm happy now I can call bpy methods but I'd like to see what happens, is it
possible?

2011/3/25 Paolo Basso <pa.basso at gmail.com>

> ....needed .dlls:
>
> - gnu_gettext
> - OpenAL32
> - pthreadVC2
> - SDL
> - wrap_oal
>
> apparently not needed to (I just tried to import bpy, nothing else):
> - iconv
> - libpng
> - zlib
>
>
>
> 2011/3/25 Paolo Basso <pa.basso at gmail.com>
>
>> Finally I fixed the problem:
>>
>> 1) Built with CMake and Visual C++ Express 2008 (MINGW seems not to work
>> appropriately for Windows 7 and generates a bpy.pyd file which is not valid,
>> see previous mail)
>>
>> 2) Copied bpy.pyd AND all the other generated dll (except for
>> python32.dll) in the same folder (bin) to C.:\Python32\DLLs (or
>> alternatively in C:\Python32\Lib\site-packages)
>>
>> Just copying bpy.pyd is not enough in my case but I neither tried to copy
>> just some of the dlls... any suggestions concerning this point is
>> appreciated.
>>
>> Cheers,
>>
>> P
>>
>>
>>
>>
>>
>>
>> 2011/3/25 Paolo Basso <pa.basso at gmail.com>
>>
>>> In which version of Windows did you compile?
>>>
>>> May the problem be this one?
>>> http://www.mingw.org/wiki/linking_hangs_under_windows_7
>>> By the way, I got a 33 mb .pyd file.
>>>
>>> Cheers
>>>   2011/3/25 Campbell Barton <ideasman42 at gmail.com>
>>>
>>>> >From the error message, python fails to load the DLL, it doesn't even
>>>> get to look for a function inside it.
>>>>
>>>> Some misc suggestions if you want to look into this further.
>>>>
>>>> - My DLL was about 120mb (RelWithDebugInfo). When setting up cmake
>>>> linking with add_library(...SHARED) function I managed to get a DLL
>>>> that was ~600kb.
>>>>  If your bpy.pyd is under 6mb something is wrong linking it and its
>>>> - try build with CMAKE_BUILD_TYPE  set to RelWithDebugInfo
>>>> - Find some tool to inspect the dll to get a hint as to why it fails,
>>>> whats wrong with it.
>>>> - could be a python ABI version conflict, I used the 32bit Python3.2
>>>> MSI, built with blenders default python that comes in lib.
>>>>
>>>> Would be interesting to know if other systems have the same trouble.
>>>>
>>>> On Fri, Mar 25, 2011 at 12:16 AM, Paolo Basso <pa.basso at gmail.com>
>>>> wrote:
>>>> > no I was running Python 3.2, I just mentioned that I also hav Python
>>>> 2.6
>>>> > installed  just in case it could be of some help in understanding my
>>>> > problem.
>>>> >
>>>> > I tried to build also the blender.exe from source but, again in this
>>>> case,
>>>> > everything seems to work fine except that at the end I get an error
>>>> message
>>>> > when I try to launch blender.
>>>> >
>>>> > I guess the problem could be something related to my minGW, can be?
>>>> >
>>>> >
>>>> >
>>>> > 2011/3/25 Daniel Tavares <danielmtavares at gmail.com>
>>>> >
>>>> >> Which of the Python runtimes were you running when you got the
>>>> ImportError?
>>>> >> It seems to me that you're trying to import bpy from Python 2.6. That
>>>> will
>>>> >> not work.
>>>> >>
>>>> >> Make sure to import bpy from your Python 3.2 runtime. As Campbell
>>>> said:
>>>> >>
>>>> >> Execute...
>>>> >> C:\Python32\python.exe
>>>> >>
>>>> >> >>> import bpy
>>>> >> >>> print(bpy.data)
>>>> >>
>>>> >>
>>>> >> Cheers,
>>>> >>
>>>> >> Daniel
>>>> >>
>>>> >>
>>>> >> On Thu, Mar 24, 2011 at 8:20 AM, Paolo Basso <pa.basso at gmail.com>
>>>> wrote:
>>>> >>
>>>> >> > My environment:
>>>> >> >
>>>> >> > Windows7 32 bit
>>>> >> > python 2.6 and python 3.2 installed (C.\Pythonx.x\...)
>>>> >> >
>>>> >> > by the way, when I write the command "python" at the command
>>>> prompt,
>>>> >> > then python26 starts (not python32)
>>>> >> >
>>>> >> >
>>>> >> > What I did:
>>>> >> >
>>>> >> > download latest build and windows dependencies with SVN and placed
>>>> in
>>>> >> > C.\BlenderSVN
>>>> >> > (then I have two folders in C.\BlenderSVN: "blender" and "lib")
>>>> >> >
>>>> >> > I run Cmake 2.8.2 gui and set:
>>>> >> >
>>>> >> > - source code location: "C:/BlenderSVN/blender"
>>>> >> > - where to build the binaries: "C:/BlenderSVN/build"
>>>> >> >
>>>> >> > then
>>>> >> > 1) click configure once
>>>> >> > 2) specify the generator for the project as "MinGW Makefiles" (Use
>>>> >> default
>>>> >> > native compilers)
>>>> >> >
>>>> >> > I get the following configure info:
>>>> >> >
>>>> >> > The C compiler identification is GNU
>>>> >> >
>>>> >> > The CXX compiler identification is GNU
>>>> >> >
>>>> >> > Check for working C compiler: C:/Program
>>>> Files/pythonxy/mingw/bin/gcc.exe
>>>> >> >
>>>> >> > Check for working C compiler: C:/Program
>>>> Files/pythonxy/mingw/bin/gcc.exe
>>>> >> > --
>>>> >> > works
>>>> >> >
>>>> >> > Detecting C compiler ABI info
>>>> >> >
>>>> >> > Detecting C compiler ABI info - done
>>>> >> >
>>>> >> > Check for working CXX compiler: C:/Program
>>>> >> Files/pythonxy/mingw/bin/g++.exe
>>>> >> >
>>>> >> > Check for working CXX compiler: C:/Program
>>>> >> Files/pythonxy/mingw/bin/g++.exe
>>>> >> > -- works
>>>> >> >
>>>> >> > Detecting CXX compiler ABI info
>>>> >> >
>>>> >> > Detecting CXX compiler ABI info - done
>>>> >> >
>>>> >> > Performing Test SUPPORT_SSE_BUILD
>>>> >> >
>>>> >> > Performing Test SUPPORT_SSE_BUILD - Success
>>>> >> >
>>>> >> > SSE Support: detected.
>>>> >> >
>>>> >> > Performing Test SUPPORT_SSE2_BUILD
>>>> >> >
>>>> >> > Performing Test SUPPORT_SSE2_BUILD - Success
>>>> >> >
>>>> >> > SSE2 Support: detected.
>>>> >> >
>>>> >> > Performing Test C_WARN_ALL
>>>> >> >
>>>> >> > Performing Test C_WARN_ALL - Success
>>>> >> >
>>>> >> > Performing Test C_WARN_CAST_ALIGN
>>>> >> >
>>>> >> > Performing Test C_WARN_CAST_ALIGN - Success
>>>> >> >
>>>> >> > Performing Test C_WARN_ERROR_DECLARATION_AFTER_STATEMENT
>>>> >> >
>>>> >> > Performing Test C_WARN_ERROR_DECLARATION_AFTER_STATEMENT - Success
>>>> >> >
>>>> >> > Performing Test C_WARN_ERROR_IMPLICIT_FUNCTION_DECLARATION
>>>> >> >
>>>> >> > Performing Test C_WARN_ERROR_IMPLICIT_FUNCTION_DECLARATION -
>>>> Success
>>>> >> >
>>>> >> > Performing Test C_WARN_ERROR_RETURN_TYPE
>>>> >> >
>>>> >> > Performing Test C_WARN_ERROR_RETURN_TYPE - Success
>>>> >> >
>>>> >> > Performing Test C_WARN_ERROR_STRICT_PROTOTYPES
>>>> >> >
>>>> >> > Performing Test C_WARN_ERROR_STRICT_PROTOTYPES - Success
>>>> >> >
>>>> >> > Performing Test C_WARN_NO_CHAR_SUBSCRIPTS
>>>> >> >
>>>> >> > Performing Test C_WARN_NO_CHAR_SUBSCRIPTS - Success
>>>> >> >
>>>> >> > Performing Test C_WARN_NO_UNKNOWN_PRAGMAS
>>>> >> >
>>>> >> > Performing Test C_WARN_NO_UNKNOWN_PRAGMAS - Success
>>>> >> >
>>>> >> > Performing Test C_WARN_POINTER_ARITH
>>>> >> >
>>>> >> > Performing Test C_WARN_POINTER_ARITH - Success
>>>> >> >
>>>> >> > Performing Test C_WARN_UNUSED_PARAMETER
>>>> >> >
>>>> >> > Performing Test C_WARN_UNUSED_PARAMETER - Success
>>>> >> >
>>>> >> > Performing Test C_WARN_WRITE_STRINGS
>>>> >> >
>>>> >> > Performing Test C_WARN_WRITE_STRINGS - Success
>>>> >> >
>>>> >> > Performing Test CXX_WARN_ALL
>>>> >> >
>>>> >> > Performing Test CXX_WARN_ALL - Success
>>>> >> >
>>>> >> > Performing Test CXX_WARN_NO_INVALID_OFFSETOF
>>>> >> >
>>>> >> > Performing Test CXX_WARN_NO_INVALID_OFFSETOF - Success
>>>> >> >
>>>> >> > Performing Test CXX_WARN_NO_SIGN_COMPARE
>>>> >> >
>>>> >> > Performing Test CXX_WARN_NO_SIGN_COMPARE - Success
>>>> >> >
>>>> >> > Blender Skipping: (bf_collada;bf_imbuf_openexr;extern_redcode)
>>>> >> >
>>>> >> > Could NOT find Subversion (missing: Subversion_SVN_EXECUTABLE)
>>>> >> >
>>>> >> > Configuring done
>>>> >> >
>>>> >> > 3) tick the box WITH_PYTHON_MODULE and unselect the box
>>>> >> WITH_PYTHON_INSTALL
>>>> >> > (WITH_PLAYER is already unselected)
>>>> >> >
>>>> >> > 4) click for the second time configure
>>>> >> >
>>>> >> > This time I get these messages:
>>>> >> >
>>>> >> > Blender Skipping: (bf_collada;bf_imbuf_openexr;extern_redcode)
>>>> >> >
>>>> >> > Could NOT find Subversion (missing: Subversion_SVN_EXECUTABLE)
>>>> >> >
>>>> >> > Configuring done
>>>> >> >
>>>> >> >
>>>> >> >
>>>> >> > 5) click generate
>>>> >> >
>>>> >> >
>>>> >> >
>>>> >> > At this point I close Cmake gui, open the windows shell and run the
>>>> >> > following commands:
>>>> >> >
>>>> >> >
>>>> >> >
>>>> >> > cd C:\BlenderSVN\build
>>>> >> >
>>>> >> > mingw32-make
>>>> >> >
>>>> >> >
>>>> >> >
>>>> >> > (the compilation ends like:
>>>> >> >
>>>> >> >
>>>> >> >
>>>> >> > [100%] Building C object
>>>> >> > source/creator/CMakeFiles/blender.dir/buildinfo.c.obj
>>>> >> > Linking CXX shared library ..\..\bin\bpy.pyd
>>>> >> > Creating library file: ..\..\lib\libbpy.dll.a
>>>> >> > Warning: .drectve `/DEFAULTLIB:"LIBCMT" /DEFAULTLIB:"OLDNAMES" '
>>>> >> > unrecognized
>>>> >> > Warning: .drectve `/DEFAULTLIB:"LIBCMT" /DEFAULTLIB:"OLDNAMES" '
>>>> >> > unrecognized
>>>> >> > Warning: .drectve `/DEFAULTLIB:"LIBCMT" /DEFAULTLIB:"OLDNAMES" '
>>>> >> > unrecognized
>>>> >> > Warning: .drectve `/DEFAULTLIB:"LIBCMT" /DEFAULTLIB:"OLDNAMES" '
>>>> >> > unrecognized
>>>> >> > [100%] Built target blender
>>>> >> >
>>>> >> >
>>>> >> >
>>>> >> > )
>>>> >> >
>>>> >> >
>>>> >> > mingw32-make *install*
>>>> >> >
>>>> >> > **
>>>> >> >
>>>> >> > After the installation, still in the shell I write the following
>>>> >> commands:
>>>> >> >
>>>> >> >
>>>> >> >
>>>> >> > copy bin\bpy.pyd C:\Python32\Lib\site-packages\
>>>> >> > xcopy /E bin\2.56 C:\Python32\
>>>> >> >
>>>> >> >
>>>> >> >
>>>> >> > (last command actually copies only the sub-folders of the 2.56
>>>> folder so
>>>> >> > that I have three different folders - config, datafiles, scripts -
>>>> in
>>>> >> > C:\Python32   -----> however I tried also copying the whole 2.56
>>>> >> folder..)
>>>> >> >
>>>> >> >
>>>> >> > ....and still get the same error message:
>>>> >> >
>>>> >> > ImportError: DLL load failed: %1 non è un'applicazione di Win32
>>>> valida.
>>>> >> >
>>>> >> >
>>>> >> >
>>>> >> >
>>>> >> >
>>>> >> >
>>>> >> > 2011/3/24 Campbell Barton <ideasman42 at gmail.com>
>>>> >> >
>>>> >> > > tested again and it works ok for me with mingw/cmake.
>>>> >> > >
>>>> >> > > You should have...
>>>> >> > > * C:\Python32\2.56\scripts
>>>> >> > > * C:\Python32\Lib\site-packages\bpy.pyd
>>>> >> > >
>>>> >> > > Execute...
>>>> >> > > C:\Python32\python.exe
>>>> >> > >
>>>> >> > > ... try import bpy,
>>>> >> > > print(bpy.data)
>>>> >> > >
>>>> >> > > Important its version 3.2 and that ./2.56/ is in the subdirectory
>>>> of
>>>> >> > > python.exe.
>>>> >> > >
>>>> >> > > On Thu, Mar 24, 2011 at 9:27 AM, Paolo Basso <pa.basso at gmail.com
>>>> >
>>>> >> wrote:
>>>> >> > > > Something wrong still happens...
>>>> >> > > >
>>>> >> > > > I compile the source using cmake and MinGW and everything seems
>>>> to
>>>> >> work
>>>> >> > > in
>>>> >> > > > the right way. I get the bpy.pyd file and successfully copy it
>>>> >> together
>>>> >> > > with
>>>> >> > > > the other folders in the python32 directory (as explained in
>>>> the wiki
>>>> >> > > page).
>>>> >> > > > However when I run the python 32 interpreter and try to import
>>>> the
>>>> >> bpy
>>>> >> > > > module I get the same error message as before (ImportError: DLL
>>>> load
>>>> >> > > failed:
>>>> >> > > > %1 is not a Win32 valid application).
>>>> >> > > >
>>>> >> > > > I tried to compile the source also with visual studio 10 but,
>>>> among
>>>> >> the
>>>> >> > > > others, I got the following error message:
>>>> >> > > >
>>>> >> > > > C:\temp_blender\bin\Debug\bpy.pyd : fatal error LNK1169: one or
>>>> more
>>>> >> > > symbols
>>>> >> > > > defined more then once
>>>> >> > > >
>>>> >> > > >
>>>> >> > > > Am I doing something wrong??
>>>> >> > > >
>>>> >> > > > Cheers,
>>>> >> > > >
>>>> >> > > > P
>>>> >> > > >
>>>> >> > > >
>>>> >> > > > 2011/3/24 Campbell Barton <ideasman42 at gmail.com>
>>>> >> > > >
>>>> >> > > >> Added support for windows r35735
>>>> >> > > >>
>>>> >> > > >> Updated wiki.
>>>> >> > > >>
>>>> http://wiki.blender.org/index.php/User:Ideasman42/BlenderAsPyModule
>>>> >> > > >>
>>>> >> > > >> On windows the function needed exporting, defining
>>>> Py_ENABLE_SHARED
>>>> >> > does
>>>> >> > > >> this.
>>>> >> > > >>
>>>> >> > > >> On Wed, Mar 23, 2011 at 6:45 PM, Paolo Basso <
>>>> pa.basso at gmail.com>
>>>> >> > > wrote:
>>>> >> > > >> > I tried also this way but I get the following error message
>>>> >> > > (translated
>>>> >> > > >> from
>>>> >> > > >> > italian):
>>>> >> > > >> >
>>>> >> > > >> > ImportError: DLL load failed: %1 is not a Win32 valid
>>>> application.
>>>> >> > > >> >
>>>> >> > > >> > It is possible that the dll has to be compiled with the same
>>>> >> > compiler
>>>> >> > > as
>>>> >> > > >> > python (visual studio)?
>>>> >> > > >> > I compiled using mgwin.
>>>> >> > > >> >
>>>> >> > > >> > http://docs.python.org/py3k/extending/windows.html
>>>> >> > > >> > 4.3. Using DLLs in Practice
>>>> >> > > >> >
>>>> >> > > >> > Thanks,
>>>> >> > > >> >
>>>> >> > > >> > P
>>>> >> > > >> >
>>>> >> > > >> > 2011/3/23 Mitchell Stokes <mogurijin at gmail.com>
>>>> >> > > >> >
>>>> >> > > >> >> On Windows, C Extension modules for Python have the
>>>> extension
>>>> >> .pyd
>>>> >> > > >> >> instead. So, try renaming the module from bpy.dll to
>>>> bpy.pyd.
>>>> >> > > >> >>
>>>> >> > > >> >> Cheers,
>>>> >> > > >> >> Mitchell
>>>> >> > > >> >> _______________________________________________
>>>> >> > > >> >> Bf-committers mailing list
>>>> >> > > >> >> Bf-committers at blender.org
>>>> >> > > >> >> http://lists.blender.org/mailman/listinfo/bf-committers
>>>> >> > > >> >>
>>>> >> > > >> > _______________________________________________
>>>> >> > > >> > Bf-committers mailing list
>>>> >> > > >> > Bf-committers at blender.org
>>>> >> > > >> > http://lists.blender.org/mailman/listinfo/bf-committers
>>>> >> > > >> >
>>>> >> > > >>
>>>> >> > > >>
>>>> >> > > >>
>>>> >> > > >> --
>>>> >> > > >> - Campbell
>>>> >> > > >> _______________________________________________
>>>> >> > > >> Bf-committers mailing list
>>>> >> > > >> Bf-committers at blender.org
>>>> >> > > >> http://lists.blender.org/mailman/listinfo/bf-committers
>>>> >> > > >>
>>>> >> > > > _______________________________________________
>>>> >> > > > Bf-committers mailing list
>>>> >> > > > Bf-committers at blender.org
>>>> >> > > > http://lists.blender.org/mailman/listinfo/bf-committers
>>>> >> > > >
>>>> >> > >
>>>> >> > >
>>>> >> > >
>>>> >> > > --
>>>> >> > > - Campbell
>>>> >> > > _______________________________________________
>>>> >> > > Bf-committers mailing list
>>>> >> > > Bf-committers at blender.org
>>>> >> > > http://lists.blender.org/mailman/listinfo/bf-committers
>>>> >> > >
>>>> >> > _______________________________________________
>>>> >> > Bf-committers mailing list
>>>> >> > Bf-committers at blender.org
>>>> >> > http://lists.blender.org/mailman/listinfo/bf-committers
>>>> >> >
>>>> >> _______________________________________________
>>>> >> Bf-committers mailing list
>>>> >> Bf-committers at blender.org
>>>> >> http://lists.blender.org/mailman/listinfo/bf-committers
>>>> >>
>>>> > _______________________________________________
>>>> > Bf-committers mailing list
>>>> > Bf-committers at blender.org
>>>> > http://lists.blender.org/mailman/listinfo/bf-committers
>>>> >
>>>>
>>>>
>>>>
>>>> --
>>>> - Campbell
>>>> _______________________________________________
>>>> Bf-committers mailing list
>>>> Bf-committers at blender.org
>>>> http://lists.blender.org/mailman/listinfo/bf-committers
>>>>
>>>
>>>
>>
>


More information about the Bf-committers mailing list