[PySide] Simple shiboken binding tutorial -- was PySide - Qt5 - Swig
Roman Lacko
backup.rlacko at gmail.com
Thu Jan 17 08:27:35 CET 2013
2013/1/17 ZHONG Zhu <Zhu.Zhong at alcatel-sbell.com.cn>
> I re-installed everying: Qt 4.8.4 for VC2010+ PySide 1.1.2. Then
> recompiled the package following your instruction. At last, the test file foolib_test.py
> passed fine. That’s really terrific! Thank you so much Roman!****
>
> ** **
>
> Still hope you can generate a PySide Windows installer on MinGW.
>
I'm working on it :)
****
>
> ** **
>
> *From:* Roman Lacko [mailto:backup.rlacko at gmail.com]
> *Sent:* Wednesday, January 16, 2013 5:49 PM
> *To:* ZHONG Zhu
> *Cc:* pyside at qt-project.org
> *Subject:* Re: Simple shiboken binding tutorial -- was PySide - Qt5 - Swig
> ****
>
> ** **
>
> 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/20130117/8d8a2c88/attachment.html>
More information about the PySide
mailing list