[PySide] Simple shiboken binding tutorial -- was PySide - Qt5 - Swig

Roman Lacko backup.rlacko at gmail.com
Wed Jan 16 10:48:37 CET 2013


2013/1/16 ZHONG Zhu <Zhu.Zhong at alcatel-sbell.com.cn>

>  Now I have 6 files in package folder.****
>
> D:\BINDINGTEST\FOOLIBBINDING\PACKAGE****
>
>     FooLib.dll****
>
>     foolib.pyd****
>
>     foolib_test.py****
>
>     libshiboken-python2.7.dll****
>
>     QtCore.pyd****
>
> QtCore4.dll****
>
> ** **
>
> **1.       **Run foolib_test.py with QtCore4.dll copied from PySide 1.1.2
> folder. I got below error.****
>
> ** **
>
> D:\BindingTest\FooLibBinding>foolib_test.py****
>
> Traceback (most recent call last):****
>
>   File "D:\BindingTest\FooLibBinding\foolib_test.py", line 1, in <module>*
> ***
>
>     from foolib import FooClass****
>
> ImportError: No module named foolib****
>
> ** **
>
> **2.       **Copied D:\Qt\4.8.1\bin\QtCore4.dll from my Qt 4.8.1
> installation to D:\BINDINGTEST\FOOLIBBINDING\PACKAGE. Run foolib_test.py
> again, I got below error.****
>
> ** **
>
> D:\BindingTest\FooLibBinding\package>foolib_test.py****
>
> ImportError: could not import module 'PySide.QtCore'****
>
> Fatal Python error: can't initialize module foolib****
>
> ** **
>
> This application has requested the Runtime to terminate it in an unusual
> way.****
>
> Please contact the application's support team for more information.****
>
> ** **
>
> Could you help to have a check the cause of the error message?
>

I thing it's because you are using mingw and PySide was compiled with msvc.
I will try to create PySide distribution with mingw, but it takes more
time. Best would be if you can use msvc compiler (VS 2008/2010 Express is
free).


> ****
>
> ** **
>
> *From:* Roman Lacko [mailto:backup.rlacko at gmail.com]
> *Sent:* Wednesday, January 16, 2013 3:38 PM
> *To:* ZHONG Zhu
> *Cc:* pyside at qt-project.org
> *Subject:* Re: Simple shiboken binding tutorial -- was PySide - Qt5 - Swig
> ****
>
> ** **
>
> Hi,****
>
> ** **
>
> 2013/1/16 ZHONG Zhu <Zhu.Zhong at alcatel-sbell.com.cn>****
>
> Thank you Roman, I completed all steps except for step 5.****
>
> 1.       Some problem found. In step 3, in
> FooLibBinding\FooLibBinding.pro,  I should be using shiboken-python2.7.a
> but PySide Windows installer only installed shiboken-python2.7.lib. So I
> have to use MinGW to build Shiboken from source to get both
> libshiboken-python2.7.dll.a and libshiboken-python2.7.dll****
>
> I will try to generate the .a version of  shiboken-python2.7.lib so the
> next version of PySide package will contain both .lib and .a versions.****
>
>  2.       After the “package” been generated, I tried to run
> foolib_test.py but failed.  Error message is like below. Then I used
> “Dependency Walker” to load foolib.pyd. It complains about QtCore4.dll.
> Error message is “Error: At least one module has an unresolved import due
> to a missing export function in an implicitly dependent module.” I checked
> and looks like QtCore4.dll shipped with PySide installer is based on Qt
> 4.8.2 but my local Qt C++ installation is Qt 4.8.1. Could this be the
> reason I can’t run foolib_test.py? Do I need to upgrade my Qt SDK to higher
> version like 4.8.4?****
>
>  You can try to replace Qt DLLs from PySide with version you have
> installed in system. I will try to regenerate the binding test with mingw...
> ****
>
>   ****
>
> D:\BindingTest\FooLibBinding\package>foolib_test.py****
>
> Traceback (most recent call last):****
>
>   File "D:\BindingTest\FooLibBinding\package\foolib_test.py", line 1, in
> <module>****
>
>     from foolib import FooClass****
>
> ImportError: DLL load failed: The specified procedure could not be found.*
> ***
>
> ===============================****
>
> 1. Install PySide
> 2. Copy content of c:\Python27\Lib\site-packages\PySide to
> BindingTest\PySide folder
> 1. Compile FooLib project
> 2. Run FooLib\generate_binding.bat
> 3. Compile FooLibBinding project
> 4. Run FooLibBinding\make_package.bat
> 5. Go to generated folder "package" and run foolib_test.py****
>
>  ****
>
> *From:* Roman Lacko [mailto:backup.rlacko at gmail.com]
> *Sent:* Wednesday, January 16, 2013 12:07 AM
> *To:* ZHONG Zhu; pyside at qt-project.org
> *Subject:* Re: Simple shiboken binding tutorial -- was PySide - Qt5 - Swig
> ****
>
>  ****
>
> sorri, you also have to update the path where you have installed Qt on
> your system in files:
>
> pyside\include\PySide\pyside_global.h
> FooLib\generate_binding.bat****
>
>  ****
>
> ...replace this "c:\Qt\qt-4.8.4-msvc2010-x64" with your path****
>
>  ****
>
>  ****
>
> 2013/1/15 Roman Lacko <backup.rlacko at gmail.com>****
>
> btw, you need to update paths to python libs and includes in
> FooLibBinding\FooLibBinding.pro. I have installed python in c:\Python27_64.
> ****
>
> Also if you are using mingw, you will need to change the .lib extension to
> .a****
>
>
> INCLUDEPATH += ../pyside/include/PySide \
>     ../pyside/include/PySide/QtCore \
>     ../pyside/include/shiboken \
>     c:/Python27_64/include \
>     ../FooLib
>
> LIBS += c:/Python27_64/libs/python27.lib \
>     ../pyside/shiboken-python2.7.lib \
>     ../FooLib-build-Desktop-Release/release/FooLib.lib****
>
>  ****
>
> 2013/1/15 Roman Lacko <backup.rlacko at gmail.com>****
>
> Hi,****
>
> i have prepared the sample projects for you here [1]****
>
> Description:****
>
>
> This is sample demonstration how to generate simple bindings with shiboken
> python binding generator
>
> FooLib project contains the library for which we want to generate the
> bindings
> FooLibBinding project contains the generated binding sources
>
> Software used:
>
> Qt 4.8.4 MSVC 2010 64bit
> Python 2.7 64bit
> PySide 1.1.2 for Python 2.7 64bit
>
> To generate and test the bindigs do the following:
>
> 1. Install PySide
> 2. Copy content of c:\Python27\Lib\site-packages\PySide to
> BindingTest\PySide folder
> 1. Compile FooLib project
> 2. Run FooLib\generate_binding.bat
> 3. Compile FooLibBinding project
> 4. Run FooLibBinding\make_package.bat
> 5. Go to generated folder "package" and run foolib_test.py
>
> [1] BindingTest.zip -
> https://docs.google.com/file/d/0B0aOk3P0ndoLbkhwbWZncTlUM00/edit****
>
>  ****
>
> 2013/1/15 Roman Lacko <backup.rlacko at gmail.com>****
>
> I will prepare simple working package for you****
>
>  ****
>
> 2013/1/15 ZHONG Zhu <Zhu.Zhong at alcatel-sbell.com.cn>****
>
> Thank you for your kindly reply!****
>
> I was following this tutorial but just can’t build a working binding on
> Windows.****
>
> Do you have any experience on building the binding on Windows?****
>
>  ****
>
> *From:* Roman Lacko [mailto:backup.rlacko at gmail.com]
> *Sent:* Tuesday, January 15, 2013 4:46 PM
> *To:* ZHONG Zhu
> *Subject:* Re: [PySide] PySide - Qt5 - Swig****
>
>  ****
>
> I have used this tutorial to create my first bindings:
> http://qt-project.org/wiki/PySide_Binding_Generation_Tutorial. it
> contains downloadable package with full source.****
>
> regards****
>
> R.****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
>  ** **
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/pyside/attachments/20130116/4351a500/attachment.html>


More information about the PySide mailing list