- 浏览: 319004 次
最新评论
-
riki:
D 语言学习交流群 264617728, 欢迎加入
D语言真相 The Case for D(1-5) -
exploder:
请教,如果使用D2进行wxD编译呢?
编译WxD0.16 -
blue_halo:
那如何解决呢????????
不能每次都用别的打开存成utf- ...
pyDev 中输入中文问题 -
funxue:
请教楼主
Error: undefined identifie ...
D语言版本的华容道 -
litsen:
在配置ms sqlserver的过程中遇到些问题,从Googl ...
安全第一,在sql server和client之间配置ssl连接
所有的嵌入都研究了一个遍。发现嵌入Python挺好,试试。
用D写Python的扩展,已经有了pyD,非常好用,效率也很高,http://pyd.dsource.org
将Python嵌入D,只能使用Raw的C-API了。这里用到了pyD中的Python接口文件
python.d和python25_digitalmars.lib,并且在本机安装了Python2.5
1.简单的高层次嵌入:就是执行一个Python的脚本
import python; void main() { Py_Initialize(); PyRun_SimpleString("from time import time,ctime\n" "print('Today is:',ctime(time()))\n"); Py_Finalize(); }
2.低层次嵌入:修改了一个C的例子,在D中调用Python函数,并返回值。python脚本和调用写在注释了。
import python; import std.stdio,std.string,std.c.string; //call: t sm mw 2 3 /* '''sm.py''' def mw(a,b): print 'Will compute',a,'times',b c=0 for i in range(0,a): c=c+b return c */ void main(char[][] argv) { PyObject * pName,pModule,pDict,pFunc; PyObject *pArgs, pValue; int i,argc; argc = argv.length; if (argc < 3) { printf("Usage: call pythonfile funcname [args]\n"); return 1; } printf("args:%d\n",argc); Py_Initialize(); pName = PyString_FromString( toStringz(argv[1]) ); /* Error checking of pName left out */ pModule = PyImport_Import(pName); Py_DECREF(pName); if (pModule != null) { pFunc = PyObject_GetAttrString(pModule, toStringz(argv[2])); /* pFunc is a new reference */ if (pFunc && PyCallable_Check(pFunc)) { pArgs = PyTuple_New(argc - 3); //set args for (i = 0; i < argc - 3; ++i) { pValue = PyInt_FromLong(atoi(argv[i + 3])); if (!pValue) { Py_DECREF(pArgs); Py_DECREF(pModule); printf("Cannot convert argument\n"); return 1; } /* pValue reference stolen here: */ PyTuple_SetItem(pArgs, i, pValue); } //call function pValue = PyObject_CallObject(pFunc, pArgs); Py_DECREF(pArgs); //release args if (pValue != null) { printf("Result of call: %ld\n", PyInt_AsLong(pValue)); Py_DECREF(pValue); //release return } else { Py_DECREF(pFunc); // Py_DECREF(pModule); PyErr_Print(); printf("Call failed/n"); return 1; } } else { if (PyErr_Occurred()) PyErr_Print(); printf( "Cannot find function \"%s\"\n", argv[2]); } Py_XDECREF(pFunc); Py_DECREF(pModule); } else { PyErr_Print(); printf("Failed to load \"%s\"\n", argv[1]); return 1; } Py_Finalize(); return 0; }
关键的是在合适的时机释放Python的变量。自己也写了个简单的封装。比较而言,最简单的还是MiniD的嵌入,其次是Lua,Python的比较复杂。Python的好处是类库丰富,几乎要什么有什么。
评论
6 楼
tomqyp
2009-06-17
试了下,在phobo版中也使用pyd自己实现的minNumArgs,现在通过编译了。
看来D1里面问题也不少啊。
看来D1里面问题也不少啊。
5 楼
tomqyp
2009-06-17
谢谢~
这么说你是在tango下编译的喽。
我看了下pyd的tango版是自己实现的minNumArgs,虽然没有phobos的那么优雅,但是逻辑简单不容易受bug影响,可惜pyd依赖老版tango中一些已经移除的函数。
这么说你是在tango下编译的喽。
我看了下pyd的tango版是自己实现的minNumArgs,虽然没有phobos的那么优雅,但是逻辑简单不容易受bug影响,可惜pyd依赖老版tango中一些已经移除的函数。
4 楼
ideage
2009-06-17
我试验了,编译不了.
我好像没有用到std.bind.
我好像没有用到std.bind.
3 楼
tomqyp
2009-06-17
1.16、1.20、1.30我都试过都通过不了,等下试试1.31
你有没有改过std.bind呢?
之前没有注意过std.bind,细看了一下感觉应该是dmd的问题。
能不能帮忙看看这段代码你能通过编译吗?
你有没有改过std.bind呢?
之前没有注意过std.bind,细看了一下感觉应该是dmd的问题。
能不能帮忙看看这段代码你能通过编译吗?
import std.bind; bool foo(int a, int b) { return a < b; } void main() { int ma = minNumArgs!(foo); }
2 楼
ideage
2009-06-16
pyd要用低版本的DMD,我用1.031.
1 楼
tomqyp
2009-06-16
能不能介绍下pyd的使用。
我自己试了试,pyd中引用的std.bind总是不能通过编译。
我自己试了试,pyd中引用的std.bind总是不能通过编译。
发表评论
-
最近抽空翻译了D语言实用入门教程
2018-04-20 10:42 820最近抽空翻译了D语言实用入门教程 地址在Github,供初 ... -
编译WxD0.16
2011-09-27 18:09 1650wx我在Python环境下用了 ... -
简单看了下DGui
2011-09-26 10:39 2184很久没有写代码了。。。。 怀念往日不如今天行动。生疏了 ... -
支持中文录入的harmonia
2010-08-16 22:40 994harmonia界面很方便,发现不能录入中文.Patch一下. ... -
控制台得到密码不回显
2009-09-18 22:37 1216看到坛子有人问“在D或C下如何实现输入单个字符不回显?可能的应 ... -
D资源文件调用
2009-08-09 01:36 1014终于成功了。 资源文件太可爱,竟然可以如此。按名称进行 ... -
The Case for D中英文版PDF下载
2009-06-19 10:27 1356The Case for D 在网站上浏览不方便的,有了PD ... -
D语言真相 The Case for D(1-5)
2009-06-17 09:52 4765D语言真相 Andrei Alexandre ... -
The Case for D
2009-06-16 22:50 2273The Case for D Andrei Alexan ... -
实用的DFL注册表
2009-05-27 09:09 950应用中要用到注册表.DFL里面有. 参照了文档,写了一 ... -
DFL 2.027,1.041,2,3编译
2009-04-07 17:59 1549注:DFL已经更新,http://www.dprogrammi ... -
D2.0的字符串
2009-04-07 08:28 1345D2.0的字符串增加了常量,不变量和变量.在很大程度上增加了语 ... -
D语言编译器DMD开源了!
2009-03-05 19:56 3410自从1999年12月,Walter设计开发D语言以来,D语 ... -
D语言现状From2007
2009-03-02 15:32 1002I'm sure this was brought up in ... -
D语言GUI库简单比较
2009-02-20 15:25 3173通过对一些D语言可以使用的GUI进行比较,对初学者有个借 ... -
D语言脚本引擎简单比较
2009-02-19 14:38 1775经过长期的测试,使用,扩展代码编写,比较了D中可以使用的几种脚 ... -
D语言编译器开始支持Mac OSX
2009-02-15 18:25 1091D语言编译器开始支持Mac OSX。 D语言历经10年的发 ... -
触发DFL中的ComboBox控件的键盘事件
2009-02-06 12:04 1146class ComboxKeyDownFilter:IMess ... -
DFL分析(四)伟大的结构
2008-12-25 00:08 1387每个程序都有很多的代码编织而成.为了获得最大的兼容性,你要从容 ... -
文件的格式和BOM
2008-12-22 19:45 2117最近,用D写了些文件操作的代码.发现,只能用UltraE ...
相关推荐
Python3.2嵌入C++ debug文件python32_d.lib
python3.1嵌入VC时,在debug环境下编译会提示缺少python31_d.lib和python31_d.dll,这两个文件在网上是找不到的。我自己编译了一份与大家共享 配制方法大家上网上查吧,这里不方便写出来。享受混合编程的快乐吧
C++嵌入python调试用得库,已经编译成dll和lib方便大家下载,学习技术。在于共享
C语言中嵌入python语言,编译debug版本时需要的动态库文件
第Ⅰ部分 初步了解Python 第1章 编程基础和字符串 3 1.1 编程与使用计算机的区别 3 1.1.1 编程的一致性 3 1.1.2 编程的可控性 4 1.1.3 程序要应对变化 4 1.1.4 小结 4 1.2 准备工作 4 ...附录D 术语表 527
Python_mgp 近似边际GP的实现。 Garnett, R.、Osborne, M. 和 Hennig, P. 高斯过程线性嵌入的主动学习。 (2014)。 第 30 届人工智能不确定性会议(UAI 2014)。 假设我们有一个关于潜在函数 f 的高斯过程模型: ...
Compatability: Python 2/3 Version: 2.3.3 2.3.4版的新功能 未修正:所以,我现在已经放弃了-d参数。 每个“修复程序”都提出了新问题,因此,除非我能找到特定的用例,否则就不值得付出努力。 2.3.3版的新功能 ...
YSDA自然语言处理课程这是2019版。 对于上一年的课程材料,请转到此分支。每周的讲座和研讨会材料位于./week*文件夹中。YSDA作业的截止日期为l YSDA...教学大纲week01嵌入讲座:单词嵌入。 分布语义,LSA,Word2Vec,GL
python-ddns 在python中嵌入独立的ddns:D
卡塞尔·皮尔·火炬(Caser-PyTorch) 来自论文的卷积序列嵌入推荐模型(Caser)的PyTorch...d :潜在尺寸数 nv :垂直过滤器的数量 nh :水平滤波器的数量 ac_conv :卷积层的激活函数(即纸中的phi_c) ac_fc :完
词嵌入的连续空间主题模型描述实现了带有单词嵌入的连续空间主题模型,这是Daichi Mochihashi的增强模型。环境C ++ 14+ lang ++ 9.0 提升1.71.0 glog 0.4.0 gflag 2.2.2 boost-python3 python3用法准备基于文档的...
深度集群:方法和实施调查论文...分类和新方法Arxiv 2018 Theano预印纸方法会议代码可区分的具有集群大小约束的深度聚类-Arxiv 2019-N2D:(不是太)通过聚类自动编码的本地流形进行深度聚类嵌入。 N2D Arxiv 2019张量
matlab代码影响功能磁共振成像嵌入 该项目是在模块级别组织的。 所有嵌入代码都组织在embeddings文件夹中,可在代码脚本中使用以下命令访问 从嵌入。导入 可以使用write_embedding.py程序运行特定的嵌入,该程序可以...
最优传输核嵌入该存储库实现了以下论文中描述的最佳传输内核嵌入(OTKE) GrégoireMialon *,Dexiong Chen *,Alexandre d'Aspremont,Julien Mairal。 。 ICLR 2021。 *平等贡献TLDR; 当面对由大量特征(如生物...
检查是否有其他语言绑定(Delphi / D / Go / .NET / Python / Rust)。 介绍 Sciter是可嵌入的HTML / CSS / script引擎,具有GPU加速渲染功能,旨在渲染现代桌面应用程序UI。 这是一个紧凑的单个dll / dylib / so...
它嵌入了PostgreSQL查询库,以允许轻松使用Python脚本中强大的PostgreSQL功能。 PyGreSQL应该在运行PostgreSQL和Python的大多数平台上运行。 它基于Pascal Andre编写的PyGres95代码。 D'Arcy( )从2.0版开始将其...
matlab实现矩阵乘法代码用于简单链接预测的复杂嵌入 该存储库包含论文中介绍的主要实验的代码: ,ThéoTrouillon,Johannes Welbl,Sebastian Riedel,ÉricGaussier和Guillaume Bouchard,ICML 2016。 ,Thé...
通过内核均值嵌入差分私有数据库发布 , , 第35届国际机器学习大会( ) [ ] [ ] 该存储库包含用于重现本学术论文中出现的实验的脚本。设置Conda环境设置: conda create -n RKHS-private-database python=3.6.3 ...
python SNE_runner.py --data_path path --id_dim 20 --attr_dim 20 --n_neg_samples 10 --epoch 20 引用 如果您使用该代码,请引用以下文章: @article{liao2017attributed, title={Attributed Social Network ...
Mayavi:Python中科学数据的3D可视化Mayavi文档: ://docs.enthought.com/mayavi/mayavi/ TVTK文档: ://docs.enthought.com/mayavi/tvtk 想象Mayavi致力于提供简单,交互式的3D...特征Mayavi是用于2-D和3-D科学数据