外部库的可移植扩展选项

你好. 我想为Windows / linux创建一个便携式设置. 我需要与外部库(GSL和 促进). 在窗户上,我做这样的事情: 成像=扩展('pyag.imaging._imaging', 来源=(glob.glob(Glob)( 'source/pyag/imaging/src/*.cpp') + glob.glob( 'source/pyag/imaging/src/*.h'),),), include_dirs =(get_numpy_include_dirs() + ['source/pyag/imaging/src/', 'c:/program 文件/boost/include/boost-1_35', 'c:/program files/gnuwin32/include']), library_dirs = ['c:/program文件/gnuwin32/lib' ],, 库= ['libgsl','libgslcblas']) 显然,路径可能会有所不同. 在Unix上,我需要类似的东西: 成像=扩展('pyag.imaging._imaging', 来源=(glob.glob(Glob)( 'source/pyag/imaging/src/*.cpp') + glob.glob( 'source/pyag/imaging/src/*.h'),),), include_dirs =(get_numpy_include_dirs() + ['source/pyag/imaging/src/']) ) 所以我的问题是:指定扩展的正确方法是什么 选项(包括_dirs,库,library_dirs),以便它们是 Windows和Linux之间的便携式? 我在想环境变量. 尽管很容易做到 更方便的东西,例如搜索"常见"目录, 虽然这些在Windows上不是很标准的? 最好,我想要 有类似的东西: 成像=扩展('pyag.imaging._imaging', 来源=(glob.glob(Glob)( 'source/pyag/imaging/src/*.cpp') + glob.glob( 'source/pyag/imaging/src/*.h'),),), include_dirs =(get_numpy_include_dirs() + ['source/pyag/imaging/src/'] + boost_include_dirs + gsl_include_dirs), library_dirs = boost_library_dirs + gsl_library_dirs, 库= boost_libraries + gsl_libraries) THX寻求帮助. 亚历克斯.

# 回答1

亚历山大·吉蒙德(Alexandre Guimond)写道: 用户可以如果需要的话,已经可以使用命令行选项和cflags,所以我 不会添加任何新的环境变量. $ cflags = -i/opt/local/include python setup.py build_ext -l/opt/local/lib Distutils根本不会进行任何搜索. 不过,您的编译器会. 这几乎就是其他所有人的做法. 只要确保 boost_ {include,library} _dirs和gsl_ {inclage,library} _dirs在附近定义 在文件的顶部带有适当的评论,以引起人们的注意. 但是,我可能建议使用类似以下内容制作设置.cfg (未注明): #不按下来修改以下部分以配置 #Boost和GSL标题和库. #[build_ext] #include-dirs =/opt/local/include,/usr/local/include #library-dirs =/opt/local/lib,/usr/local/lib 更改数据文件中的数据对我来说比更改程序中的数据更好 由于某些原因. - - 罗伯特·克恩(Robert Kern) "我已经相信整个世界都是一个谜,无害的谜 这是我们自己疯狂地尝试解释它的可怕的 一个基本的真理." -Umberto Eco

标签: python

添加新评论