草庐IT

swig-template

全部标签

python - 在 Django 的 TEMPLATE_DIRS 中使用外部 URL

Django在Settings.py中的TEMPLATE_DIRS调用unix风格的斜杠。正因为如此,当我打电话get_template('some/template.html')在View中,结果总是从根开始,并导致对的调用/home/username/projectname/public/some/template.html问题是我想使用托管在完全不同站点上的模板。这适用于其他Settings.py字段(MEDIA_URL和STATIC_URL),它将采用绝对的http路径,没有异议。给定一个http路径,TEMPLATE_DIRS('http://example.com/',)在

c++ - 如何在 Python + SWIG 中接收引用和指针参数?

我有一个C++函数,其中给出了两个参数,如下例所示。voidfunc(int&n,char**data){*data=other_func1();//returnsachararrayn=other_func2();//returnsthelengthofthearray}我可以在C或C++中轻松使用此函数,但我不知道如何从使用SWIG生成的Python模块中调用它。我想我将不得不编写另一个C++函数来返回,例如,std::pair。但如果可能的话,我想知道Python方面的解决方法。谁能帮忙? 最佳答案 对于很多情况(例如int*

c++ - 如何使用 shared_ptr 和 SWIG 避免内存泄漏

我正在尝试使用boost::shared_ptr来允许我在我的python脚本中使用c++文件I/O流对象。但是,生成的包装器警告我它正在泄漏内存。这是一个展示问题的最小.i文件:%moduleptrtest%include"boost_shared_ptr.i"%include"std_string.i"%shared_ptr(std::ofstream)%{#include#includetypedefboost::shared_ptrofstream_ptr;ofstream_ptrmk_out(conststd::string&fname){returnofstream_ptr

c++后端使用swig wrapper调用python级别定义的回调

我正在将一个用C++编写的库包装到PythonAPIlibwebqq在boost函数中定义了一个类型。typedefboost::functionEventListener;Python级别可以定义“EventListener”变量回调。Adapter类中也有C++级别的map结构,即event_map。event_map的键类型是QQEvent枚举类型,event_map的值类型是包装EvenListener的类“Action”。classAction{EventListener_callback;public:Action(){n_actions++;}Action(constEv

python - Django 1.8 TEMPLATE_DIRS 被忽略

这让我发疯。我做了一些奇怪的事情,似乎我的TEMPLATE_DIRS条目被忽略了。我只有一个settings.py文件,位于项目目录中,它包含:TEMPLATE_DIRS=(os.path.join(BASE_DIR,'templates'),os.path.join(BASE_DIR,'web_app/views/'),)我将项目级模板放在/templates文件夹中,然后在我的应用程序文件夹中有不同View类别的文件夹(例如身份验证View、帐户View等)。例如,我的主索引页面View在web_app/views/main/views_main.py中,看起来像fromweb_a

python - 将方法动态附加到使用 swig 生成的现有 Python 对象?

我正在使用Python类,但我没有对其声明的写入权限。如何在不修改类声明的情况下将自定义方法(例如__str__)附加到从该类创建的对象?编辑:谢谢你所有的回答。我尝试了所有方法,但没有解决我的问题。这是一个最小的例子,我希望它能澄清这个问题。我正在使用swig包装C++类,目的是覆盖swig模块返回的对象的__str__函数。我使用cmake构建示例:测试.pyimportexampleex=example.generate_example(2)defprnt(self):returnstr(self.x)#HowcanIreplacethe__str__functionofobje

c++ - swig 包装器的速度

如果我用C++编写几个类,然后使用swig进行转换,以便我以后可以在Python中使用它们,与我完全用Python重写它们相比,它们运行得更快还是更慢?或者没有明显的速度差异? 最佳答案 SWIG生成的包装器的质量和速度非常好,它们的性能可能与手工制作的包装器一样好。根据我的经验,包装器本身非常薄,并且给它们包装的native函数增加的开销很小,这使得在python或任何其他支持的语言中使用包装库成为一个完全有效的选择,并且是重用的好方法代码。但是,如果您除了代码重用之外还对性能感兴趣,那么包装native代码可能只有在您具有一些计

c++ - SWIG C++ Python : wrapping int by reference or pointer

我正在尝试将一些C++函数包装到Python包装器中。为此,SWIG似乎是一种不错且简单的方法。换行有效,但我在通过引用或指针传递整数时遇到问题。由于Python无法使用引用,SWIG在内部将它们转换为指针。一些简单的示例代码:布拉特.hpp:#ifndef__BLAAT_HPP__#define__BLAAT_HPPclassBlaat{public:intmA;floatmB;public:Blaat(){}voidgetA(int&fA);voidsetA(constintfA);~Blaat(){}};#endif//__BLAAT_HPP__Blaat.cpp#include

python - 有什么好的方法可以为 swig 接口(interface)生成文档吗?

我想知道有没有什么好的技术来构建/维护界面文档。我正在使用swig构建一个从C++代码到Python的接口(interface);大多数时候我只是%包括C++头文件。我正在处理至少几十个类(class)和100多种功能,因此首选自动化工具。理想情况下,我想在c++header中使用doxygen格式的注释来在python类/方法中填充文档字符串。或者,生成单独的文档(ascii、html...)也会很有用。看起来支持这种功能在swig的早期版本(1.3及更早版本)中,但我看不出有什么办法它与2.0.是否有任何有用的(自动化的)技术来记录界面? 最佳答案

c++ - SWIG 为 Python 包装 C++ : translating a list of strings to an STL vector of STL strings

我想用SWIG包装一个C++函数,它接受一个STL字符串vector作为输入参数:#include#include#includeusingnamespacestd;voidprint_function(vectorstrs){for(unsignedinti=0;i我想将其包装到一个名为“mymod”的模块中可用的Python函数中:/*mymod.i*/%modulemymod%include"typemaps.i"%include"std_string.i"%include"std_vector.i"%{#include"mymod.hpp"%}%include"mymod.hp