Python论坛  - 讨论区

标题:[python-chinese] boost.python

2006年10月27日 星期五 11:59

苏亚 su1981ya在163.com
星期五 十月 27 11:59:34 HKT 2006

我想使用boost中提供的python功能,现在库已经编译好了,正准备试一下其中的
example,但是碰到一个问题:

当我用msvc编译时,一切正常,产生hello.pyd,用python调试也是正常的;
但当我用mingw编译时,虽然产生hello.pyd,但调试时却无法正常运行,提示错误为:

>>> import hello
Traceback (most recent call last):
File "", line 1, in ?
ImportError: dynamic module does not define init function (inithello)

请各位指教一下。

另外,为什么每次编译一个项目,总会重新编译一遍boost_python.dll,很占用时
间;而且msvc和mingw产生的该文件大小还不一样, msvc的有249k,而mingw的则
是10。9兆! 差别很大。不知道各位是如何解决的?

谢谢


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年10月27日 星期五 13:18

大熊 bearsprite在gmail.com
星期五 十月 27 13:18:36 HKT 2006

这么大,怎么感觉是debug的包

另外mingw gcc生成的文件可以使用strip来"压缩"一下的,不知bjam是否自动调用这个命令,否则就手工来一下

2006/10/27, 苏亚 <su1981ya在163.com>:
>
> 我想使用boost中提供的python功能,现在库已经编译好了,正准备试一下其中的
> example,但是碰到一个问题:
>
> 当我用msvc编译时,一切正常,产生hello.pyd,用python调试也是正常的;
> 但当我用mingw编译时,虽然产生hello.pyd,但调试时却无法正常运行,提示错误为:
>
> >>> import hello
> Traceback (most recent call last):
> File "", line 1, in ?
> ImportError: dynamic module does not define init function (inithello)
>
> 请各位指教一下。
>
> 另外,为什么每次编译一个项目,总会重新编译一遍boost_python.dll,很占用时
> 间;而且msvc和mingw产生的该文件大小还不一样, msvc的有249k,而mingw的则
> 是10。9兆! 差别很大。不知道各位是如何解决的?
>
> 谢谢
>
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese




-- 
茫茫人海,你是我的最爱
-------------- 下一部分 --------------
一个HTML附件被移除...
URL: http://python.cn/pipermail/python-chinese/attachments/20061027/7c553f4b/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年10月27日 星期五 13:59

苏亚 su1981ya在163.com
星期五 十月 27 13:59:18 HKT 2006

大熊 写道:
> 这么大,怎么感觉是debug的包
>
> 另外mingw gcc生成的文件可以使用strip来"压缩"一下的,不知bjam是否自动调 
> 用这个命令,否则就手工来一下
>
> 2006/10/27, 苏亚 <su1981ya在163.com su1981ya在163.com>>:
>
>     我想使用boost中提供的python功能,现在库已经编译好了,正准备试一下
>     其中的
>     example,但是碰到一个问题:
>
>     当我用msvc编译时,一切正常,产生hello.pyd,用python调试也是正常的;
>     但当我用mingw编译时,虽然产生hello.pyd,但调试时却无法正常运行,提
>     示错误为:
>
>     >>> import hello
>     Traceback (most recent call last):
>     File "", line 1, in ?
>     ImportError: dynamic module does not define init function (inithello)
>
>     请各位指教一下。
>
>     另外,为什么每次编译一个项目,总会重新编译一遍boost_python.dll,很
>     占用时
>     间;而且msvc和mingw产生的该文件大小还不一样, msvc的有249k,而
>     mingw的则
>     是10。9兆! 差别很大。不知道各位是如何解决的?
>
>     谢谢
>
>     _______________________________________________
>     python-chinese
>     Post: send python-chinese在lists.python.cn
>     python-chinese在lists.python.cn>
>     Subscribe: send subscribe to
>     python-chinese-request在lists.python.cn
>     python-chinese-request在lists.python.cn>
>     Unsubscribe: send unsubscribe
>     to  python-chinese-request在lists.python.cn
>     python-chinese-request在lists.python.cn>
>     Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
>
>
>
> -- 
> 茫茫人海,你是我的最爱
> ------------------------------------------------------------------------
>
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
是呀,太大了点。python24也才1兆多点。

有谁了解这个问题吗?



[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年10月27日 星期五 14:00

刘鑫 march.liu在gmail.com
星期五 十月 27 14:00:24 HKT 2006

1¡¢Windowƽ̨ÉϵÄPython2.4/2.5·¢²¼°æÊÇÓÃVC7.1±àÒëµÄ£¬
ÄãʹÓÃVCÖ®ÍâµÄ±àÒëÆ÷£¬ÐèÒª×Ô¼ºÖØбàÒëÒ»¸öPython25/24.lib¡£
2¡¢GCCϵÁеıàÒëÆ÷°Ñµ÷ÊÔÐÅϢдÔÚdebug°æµÄÖ´ÐгÌÐòÀVC°Ñµ÷ÊÔÐÅÏ¢·ÅÔÚµ¥¶ÀµÄÎļþÀËùÒÔGCC±àÒëµÄdebug°æÎļþ¿´ÆðÀ´»á´óһЩ¡£

2006/10/27, ËÕÑÇ <su1981ya在163.com>:
>
> ÎÒÏëʹÓÃboostÖÐÌṩµÄpython¹¦ÄÜ£¬ÏÖÔÚ¿âÒѾ­±àÒëºÃÁË£¬Õý×¼±¸ÊÔÒ»ÏÂÆäÖеÄ
> example£¬µ«ÊÇÅöµ½Ò»¸öÎÊÌ⣺
>
> µ±ÎÒÓÃmsvc±àÒëʱ£¬Ò»ÇÐÕý³££¬²úÉúhello.pyd£¬ÓÃpythonµ÷ÊÔÒ²ÊÇÕý³£µÄ£»
> µ«µ±ÎÒÓÃmingw±àÒëʱ£¬ËäÈ»²úÉúhello.pyd£¬µ«µ÷ÊÔʱȴÎÞ·¨Õý³£ÔËÐУ¬Ìáʾ´íÎóΪ£º
>
> >>> import hello
> Traceback (most recent call last):
> File "", line 1, in ?
> ImportError: dynamic module does not define init function (inithello)
>
> Çë¸÷λָ½Ìһϡ£
>
> ÁíÍ⣬Ϊʲôÿ´Î±àÒëÒ»¸öÏîÄ¿£¬×Ü»áÖØбàÒëÒ»±éboost_python.dll£¬ºÜÕ¼ÓÃʱ
> ¼ä£»¶øÇÒmsvcºÍmingw²úÉúµÄ¸ÃÎļþ´óС»¹²»Ò»Ñù£¬ msvcµÄÓÐ249k£¬¶ømingwµÄÔò
> ÊÇ10¡£9Õ×£¡ ²î±ðºÜ´ó¡£²»ÖªµÀ¸÷λÊÇÈçºÎ½â¾öµÄ£¿
>
> лл
>
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese




-- 
»¶Ó­·ÃÎÊ£º
http://blog.csdn.net/ccat

ÁõöÎ
March.Liu
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20061027/6366a29d/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年10月27日 星期五 14:02

苏亚 su1981ya在163.com
星期五 十月 27 14:02:40 HKT 2006

刘鑫 写道:
> 1、Window平台上的Python2.4/2.5发布版是用VC7.1编译的,你使用VC之外的编
> 译器,需要自己重新编译一个Python25/24.lib。
> 2、GCC系列的编译器把调试信息写在debug版的执行程序里,VC把调试信息放在
> 单独的文件里,所以GCC编译的debug版文件看起来会大一些。
>
> 2006/10/27, 苏亚 < su1981ya在163.com su1981ya在163.com>>:
>
>     我想使用boost中提供的python功能,现在库已经编译好了,正准备试一下
>     其中的
>     example,但是碰到一个问题:
>
>     当我用msvc编译时,一切正常,产生hello.pyd,用python调试也是正常的;
>     但当我用mingw编译时,虽然产生hello.pyd,但调试时却无法正常运行,提
>     示错误为:
>
>     >>> import hello
>     Traceback (most recent call last):
>     File "", line 1, in ?
>     ImportError: dynamic module does not define init function (inithello)
>
>     请各位指教一下。
>
>     另外,为什么每次编译一个项目,总会重新编译一遍boost_python.dll,很
>     占用时
>     间;而且msvc和mingw产生的该文件大小还不一样, msvc的有249k,而
>     mingw的则
>     是10。9兆! 差别很大。不知道各位是如何解决的?
>
>     谢谢
>
>     _______________________________________________
>     python-chinese
>     Post: send python-chinese在lists.python.cn
>     python-chinese在lists.python.cn>
>     Subscribe: send subscribe to
>     python-chinese-request在lists.python.cn
>     python-chinese-request在lists.python.cn>
>     Unsubscribe: send unsubscribe to
>     python-chinese-request在lists.python.cn
>     python-chinese-request在lists.python.cn>
>     Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
>
>
>
> -- 
> 欢迎访问:
> http://blog.csdn.net/ccat
>
> 刘鑫
> March.Liu
> ------------------------------------------------------------------------
>
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
简单明了!谢谢



[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年10月27日 星期五 14:31

刘鑫 march.liu在gmail.com
星期五 十月 27 14:31:21 HKT 2006

ÁíÍ⣬ÄãµÄµÚÒ»¸öÎÊÌ⣬Ӧ¸ÃÊÇÒòΪBOOST_PYTHON_MODULEºêÀïµÄ²ÎÊýÓëÎļþÃû²»Í¬Ôì³ÉµÄ£¬Õâ¸ö²ÎÊýÃû¾ÍÊÇÄ£¿éµÄÃû×Ö£¬ËüÒª¸úÎļþÃûÒ»Ö¡£±ÈÈçhelloÄ£¿é¾ÍÓ¦¸ÃÊÇBOOST_PYTHON_MODULE(hello)£¬
±àÒë³öÀ´Ó¦¸ÃÊÇhello.pyd»òhello.dll(win)/hello.so(*nix)

2006/10/27, ËÕÑÇ <su1981ya在163.com>:
>
> ÁõöΠдµÀ:
> > 1¡¢Windowƽ̨ÉϵÄPython2.4/2.5·¢²¼°æÊÇÓÃVC7.1±àÒëµÄ£¬ÄãʹÓÃVCÖ®ÍâµÄ±à
> > ÒëÆ÷£¬ÐèÒª×Ô¼ºÖØбàÒëÒ»¸öPython25/24.lib¡£
> > 2¡¢GCCϵÁеıàÒëÆ÷°Ñµ÷ÊÔÐÅϢдÔÚdebug°æµÄÖ´ÐгÌÐòÀVC°Ñµ÷ÊÔÐÅÏ¢·ÅÔÚ
> > µ¥¶ÀµÄÎļþÀËùÒÔGCC±àÒëµÄdebug°æÎļþ¿´ÆðÀ´»á´óһЩ¡£
> >
> > 2006/10/27, ËÕÑÇ < su1981ya在163.com su1981ya在163.com>>:
> >
> >     ÎÒÏëʹÓÃboostÖÐÌṩµÄpython¹¦ÄÜ£¬ÏÖÔÚ¿âÒѾ­±àÒëºÃÁË£¬Õý×¼±¸ÊÔÒ»ÏÂ
> >     ÆäÖеÄ
> >     example£¬µ«ÊÇÅöµ½Ò»¸öÎÊÌ⣺
> >
> >     µ±ÎÒÓÃmsvc±àÒëʱ£¬Ò»ÇÐÕý³££¬²úÉúhello.pyd£¬ÓÃpythonµ÷ÊÔÒ²ÊÇÕý³£µÄ£»
> >     µ«µ±ÎÒÓÃmingw±àÒëʱ£¬ËäÈ»²úÉúhello.pyd£¬µ«µ÷ÊÔʱȴÎÞ·¨Õý³£ÔËÐУ¬Ìá
> >     ʾ´íÎóΪ£º
> >
> >     >>> import hello
> >     Traceback (most recent call last):
> >     File "", line 1, in ?
> >     ImportError: dynamic module does not define init function
> (inithello)
> >
> >     Çë¸÷λָ½Ìһϡ£
> >
> >     ÁíÍ⣬Ϊʲôÿ´Î±àÒëÒ»¸öÏîÄ¿£¬×Ü»áÖØбàÒëÒ»±éboost_python.dll£¬ºÜ
> >     Õ¼ÓÃʱ
> >     ¼ä£»¶øÇÒmsvcºÍmingw²úÉúµÄ¸ÃÎļþ´óС»¹²»Ò»Ñù£¬ msvcµÄÓÐ249k£¬¶ø
> >     mingwµÄÔò
> >     ÊÇ10¡£9Õ×£¡ ²î±ðºÜ´ó¡£²»ÖªµÀ¸÷λÊÇÈçºÎ½â¾öµÄ£¿
> >
> >     лл
> >
> >     _______________________________________________
> >     python-chinese
> >     Post: send python-chinese在lists.python.cn
> >     python-chinese在lists.python.cn>
> >     Subscribe: send subscribe to
> >     python-chinese-request在lists.python.cn
> >     python-chinese-request在lists.python.cn>
> >     Unsubscribe: send unsubscribe to
> >     python-chinese-request在lists.python.cn
> >     python-chinese-request在lists.python.cn>
> >     Detail Info: http://python.cn/mailman/listinfo/python-chinese
> >
> >
> >
> >
> > --
> > »¶Ó­·ÃÎÊ£º
> > http://blog.csdn.net/ccat
> >
> > ÁõöÎ
> > March.Liu
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > python-chinese
> > Post: send python-chinese在lists.python.cn
> > Subscribe: send subscribe to python-chinese-request在lists.python.cn
> > Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> > Detail Info: http://python.cn/mailman/listinfo/python-chinese
> ¼òµ¥Ã÷ÁË£¡Ð»Ð»
>
>
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese




-- 
»¶Ó­·ÃÎÊ£º
http://blog.csdn.net/ccat

ÁõöÎ
March.Liu
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20061027/5f4fe658/attachment-0001.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年10月27日 星期五 15:43

苏亚 su1981ya在163.com
星期五 十月 27 15:43:57 HKT 2006

刘鑫 写道:
> 另外,你的第一个问题,应该是因为BOOST_PYTHON_MODULE宏里的参数与文件名
> 不同造成的,这个参数名就是模块的名字,它要跟文件名一致。比如hello模块
> 就应该是BOOST_PYTHON_MODULE(hello),编译出来应该是hello.pyd或
> hello.dll(win)/hello.so(*nix)
>
> 2006/10/27, 苏亚 < su1981ya在163.com su1981ya在163.com>>:
>
>     刘鑫 写道:
>     > 1、Window平台上的Python2.4/2.5发布版是用VC7.1编译的,你使用VC之
>     外的编
>     > 译器,需要自己重新编译一个Python25/24.lib。
>     > 2、GCC系列的编译器把调试信息写在debug版的执行程序里,VC把调试信
>     息放在
>     > 单独的文件里,所以GCC编译的debug版文件看起来会大一些。
>     >
>     > 2006/10/27, 苏亚 < su1981ya在163.com su1981ya在163.com>
>     su1981ya在163.com su1981ya在163.com>>>:
>     >
>     > 我想使用boost中提供的python功能,现在库已经编译好了,正准备试一下
>     > 其中的
>     > example,但是碰到一个问题:
>     >
>     > 当我用msvc编译时,一切正常,产生hello.pyd,用python调试也是正常的;
>     > 但当我用mingw编译时,虽然产生hello.pyd,但调试时却无法正常运行,提
>     > 示错误为:
>     >
>     > >>> import hello
>     > Traceback (most recent call last):
>     > File "", line 1, in ?
>     > ImportError: dynamic module does not define init function
>     (inithello)
>     >
>     > 请各位指教一下。
>     >
>     > 另外,为什么每次编译一个项目,总会重新编译一遍boost_python.dll,很
>     > 占用时
>     > 间;而且msvc和mingw产生的该文件大小还不一样, msvc的有249k,而
>     > mingw的则
>     > 是10。9兆! 差别很大。不知道各位是如何解决的?
>     >
>     > 谢谢
>     >
>     > _______________________________________________
>     > python-chinese
>     > Post: send python-chinese在lists.python.cn
>     python-chinese在lists.python.cn>
>     > python-chinese在lists.python.cn
>     python-chinese在lists.python.cn>>
>     > Subscribe: send subscribe to
>     > python-chinese-request在lists.python.cn
>     python-chinese-request在lists.python.cn>
>     > python-chinese-request在lists.python.cn
>     python-chinese-request在lists.python.cn>>
>     > Unsubscribe: send unsubscribe to
>     > python-chinese-request在lists.python.cn
>     python-chinese-request在lists.python.cn>
>     > python-chinese-request在lists.python.cn
>     python-chinese-request在lists.python.cn>>
>     > Detail Info: http://python.cn/mailman/listinfo/python-chinese
>     >
>     >
>     >
>     >
>     > --
>     > 欢迎访问:
>     > http://blog.csdn.net/ccat
>     >
>     > 刘鑫
>     > March.Liu
>     >
>     ------------------------------------------------------------------------
>     >
>     > _______________________________________________
>     > python-chinese
>     > Post: send python-chinese在lists.python.cn
>     python-chinese在lists.python.cn>
>     > Subscribe: send subscribe to
>     python-chinese-request在lists.python.cn
>     python-chinese-request在lists.python.cn>
>     > Unsubscribe: send unsubscribe to
>     python-chinese-request在lists.python.cn
>     python-chinese-request在lists.python.cn>
>     > Detail Info: http://python.cn/mailman/listinfo/python-chinese
>     简单明了!谢谢
>
>
>     _______________________________________________
>     python-chinese
>     Post: send python-chinese在lists.python.cn
>     python-chinese在lists.python.cn>
>     Subscribe: send subscribe to
>     python-chinese-request在lists.python.cn
>     python-chinese-request在lists.python.cn>
>     Unsubscribe: send unsubscribe to
>     python-chinese-request在lists.python.cn
>     python-chinese-request在lists.python.cn>
>     Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
>
>
>
> -- 
> 欢迎访问:
> http://blog.csdn.net/ccat
>
> 刘鑫
> March.Liu
> ------------------------------------------------------------------------
>
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
恕我愚钝,不太明白你的意思。如果照你的说法,那我应该按什么参数编译呢?难
道要到boost中去改吗?

另外,现在我每次编译时,命令行都是bjam -sTOOLS=msvc, 请问有没有什么方法
可以让它默认选一种参数?而且每次建一个项目都要建一个文件jamrules,我觉得
很麻烦,能否将这个文件中的BOOST_ROOT 参数定下来,然后把它放在某个文件夹
下,bjam可以自动寻找?

还有一个问题我一直没有找到解决方案,那就是vc的绿化。我不希望每次重装系统
都要装一遍vc,更不想用ghost把vc集成到一起,不知道大家有没有解决过这个问题?






[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号