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. From: Roman Lacko [mailto:backup.rla...@gmail.com] Sent: Wednesday, January 16, 2013 5:49 PM To: ZHONG Zhu Cc: pyside@qt-project.org Subject: Re: Simple shiboken binding tutorial -- was PySide - Qt5 - Swig 2013/1/16 ZHONG Zhu <zhu.zh...@alcatel-sbell.com.cn<mailto:zhu.zh...@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.rla...@gmail.com<mailto:backup.rla...@gmail.com>] Sent: Wednesday, January 16, 2013 3:38 PM To: ZHONG Zhu Cc: pyside@qt-project.org<mailto:pyside@qt-project.org> Subject: Re: Simple shiboken binding tutorial -- was PySide - Qt5 - Swig Hi, 2013/1/16 ZHONG Zhu <zhu.zh...@alcatel-sbell.com.cn<mailto:zhu.zh...@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.rla...@gmail.com<mailto:backup.rla...@gmail.com>] Sent: Wednesday, January 16, 2013 12:07 AM To: ZHONG Zhu; pyside@qt-project.org<mailto:pyside@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.rla...@gmail.com<mailto:backup.rla...@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.rla...@gmail.com<mailto:backup.rla...@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.rla...@gmail.com<mailto:backup.rla...@gmail.com>> I will prepare simple working package for you 2013/1/15 ZHONG Zhu <zhu.zh...@alcatel-sbell.com.cn<mailto:zhu.zh...@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.rla...@gmail.com<mailto:backup.rla...@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.
_______________________________________________ PySide mailing list PySide@qt-project.org http://lists.qt-project.org/mailman/listinfo/pyside