[Bf-committers] bpy.dll

Paolo Basso pa.basso at gmail.com
Fri Mar 25 18:54:28 CET 2011


....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