问题列表 - 第39203页

编写与Python接口的快速抽象的语言选择?

我有一个目前用Python编写的系统,可以分为后端和前端层.Python太慢了,所以我想用快速编译的语言重写后端,同时在Python中保留前端,以便从Python调用后端功能.这样做的最佳选择是什么?

我考虑过cython,但写作非常有限且繁琐,并没有那么快.从我记得的Boost Python for C++开始,维护语言之间的桥梁非常烦人.有更好的选择吗?

我的主要因素是:

  • 执行速度
  • 编译速度
  • 语言是声明性的

c++ python java boost-python

5
推荐指数
1
解决办法
243
查看次数

Eclipse + CDT + Cygwin:你如何修复"多个目标"错误?

更新1:我原来的帖子太长,模糊了真正的问题.我已经发现在调用Make时究竟是什么导致了"多个目标"错误.

更新2:我发现这个"多目标"错误是由GNU Make版本3.8.1引起的(参见here1here2).GNU Make 3.8.1是与Cygwin一起发布的当前GNU Make.总结链接:旧的v3.8.0处理窗口路径很好,而较新的v3.8.1报告了Windows路径的错误(也许它是来自FSF的被动攻击性攻击?).


当您在Eclipse + CDT + Cygwin中启动一个没有外部包含/库的新项目时,一切都适合我.

一旦我尝试使用外部包含/库,我就会收到"多个目标"错误.

以下是在Windows + Eclipse + CDT + Cygwin上重现错误所需的步骤:

  1. 项目属性 - > C/C++ Build - > Settings - > Tool Settings - > Cygwin C Compiler - > Includes - > Include Paths(-I) - > Add Button - > Pick directory - >"C:\ dir1\dir2"
  2. 我点击了构建.
  3. 它第一次构建时没有错误.
  4. 我再次点击构建...我得到构建错误"多个目标.停止.".
  5. 我点击错误.

Eclipse提取了一个makefile.当make从外部库中看到新包含文件的Windows路径时,会发生错误:

# NOTE: Error happens when the first "C:/" occurs
src/main.d src/main.o: ../src/main.c C:/dir1/dir2/ExternalLibrary.h
Run Code Online (Sandbox Code Playgroud)

Make得到错误"Multiple targets"的原因是因为它看到了":",它是Make语法的一部分,用于声明目标.如果有两个":",则输出错误,因为它不知道如何处理"多个目标".


我无法手动编辑makefile,因为它们会立即重新生成并被覆盖[UPDATE:by Eclipse-CDT].鉴于我无法手动编辑makefile. …

c eclipse cygwin makefile eclipse-cdt

5
推荐指数
1
解决办法
6322
查看次数

使用OR关系进行JSR-303验证

我在我的bean中有一个字段,我想要是Null,或者是过去的日期.JSR-303为Null和Past提供注释,但如果我同时应用它,它将永远不会验证,因为它不能同时为Null和Past.我想在OR关系中组合验证.我很确定我必须为此创建自己的验证器实现,但我希望我遗漏了一些东西,你们中的一个可以告诉我如何在OR关系中轻松组合现有的验证器.

java validation bean-validation

3
推荐指数
1
解决办法
609
查看次数

使用 WS_EX_COMPOSITED 实现无闪烁选项卡控件

我有一个使用 WTL 8.1 开发的适用于 Windows XP SP3 的 VS2008 C++ 应用程序。我的应用程序包含一个选项卡控件,该控件在调整应用程序边框大小时会闪烁。

我的窗口层次结构如下所示:

CFrameWindowImpl   CMainFrm
|-CSplitterWindow  Splitter
  |-CTabView       Configuration Tabs
  | |-CDialogImpl  Configuration View 1
  | |-CDialogImpl  Configuration View 2
  | |-CDialogImpl  Configuration View 3
  |-CDialogImpl    Control View
Run Code Online (Sandbox Code Playgroud)

我尝试的解决方案是使CFrameWindowImpl派生类使用该WS_EX_COMPOSITED样式,并且其下面的所有窗口都使用该WS_EX_TRANSPARENT样式。不幸的是,这使得选项卡控件按钮显示为空黑条,并且任何配置视图的控件根本不显示。

如果我删除WS_EX_COMPOSITEDWS_EX_TRANSPARENT样式,表单会正确显示,但CTabView调整大小时,其下面的所有内容都会可怕地闪烁。

我需要更改什么才能消除闪烁并正确绘制控件?

谢谢,保罗


编辑:让它工作。我WS_EX_TRANSPARENT按照马克·兰塞姆的建议删除了所有样式。我将样式放在(包含在)WS_EX_COMPOSITED上。其他控件根据需要通过 获得双缓冲。CTabCtrlCTabViewWTL::CDoubleBufferImpl<>

c++ windows wtl flicker

3
推荐指数
1
解决办法
9983
查看次数

Perl中的Float比较问题

可能重复:
如何修复此Perl代码以便1.1 + 2.2 == 3.3?

我正在研究一个Perl脚本,它比较代表基因模型的字符串并打印出比较的摘要.如果基因模型匹配完美,我打印出一个非常简洁的摘要,但如果它们不同,则摘要非常详细.

该脚本查看变量的值以确定它是否应该执行简洁或详细的汇总 - 如果变量等于1,它应该打印简洁摘要; 否则,它应该打印详细摘要.

由于值是数字(浮点数),我一直在使用==运算符进行比较.

if($stats->{overall_simple_matching_coefficient} == 1)
{
  print "Gene structures match perfectly!\n";
}
Run Code Online (Sandbox Code Playgroud)

这适用于我的所有测试,甚至对于我现在正在运行的大多数新案例,但我发现了一个奇怪的情况,其中值等于1,但上述比较失败.我无法弄清楚为什么比较失败了,而且更奇怪的是,当我将==操作符更改为操作eq符时,它似乎工作正常.

我认为这==是用于数字比较,eq用于字符串比较.我在这里错过了什么吗?

更新:如果我在比较之前打印出值...

printf("Test: '%f', '%d', '%s'\n", $stats->{overall_simple_matching_coefficient}, $stats->{overall_simple_matching_coefficient}, $stats->{overall_simple_matching_coefficient});
Run Code Online (Sandbox Code Playgroud)

我明白了

Test: '1.000000', '0', '1'
Run Code Online (Sandbox Code Playgroud)

floating-point perl comparison

1
推荐指数
1
解决办法
3136
查看次数

从过滤器移动到withFilter的指南?

是否有详细的指南从filter()移动到withFilter()?现在我收到有关使用filter()实现的警告,但找不到移动到withFilter()的简单指南...

scala

12
推荐指数
1
解决办法
3402
查看次数

使用NetTcpBinding与非WCF客户端通信

NetTcpBinding用于WCF到WCF通信.但它是否也可以用于与非WCF客户端的通信?也就是说,它确实使用了几种WS-*协议,因此有没有特殊原因导致它无法与非WCF客户端通信?

谢谢

wcf web-services

4
推荐指数
1
解决办法
887
查看次数

bash完成makefile目标

假设我有一个简单的makefile,如:

hello:
   echo "hello world"

bye:
   echo "bye bye"
Run Code Online (Sandbox Code Playgroud)

然后在bash我想要的东西:

make h <tab>

所以它可以完成

打招呼

我发现了一种简单的方法,比如创建空文件hello,bye但我正在寻找更复杂的东西.

makefile bash-completion

43
推荐指数
3
解决办法
2万
查看次数

在Python中,如何检查驱动器是否存在而不会为可移动驱动器抛出错误?

这是我到目前为止所拥有的:

import os.path as op
for d in map(chr, range(98, 123)): #drives b-z
    if not op.isdir(d + ':/'): continue
Run Code Online (Sandbox Code Playgroud)

问题是它在Windows中弹出一个"No Disk"错误框:

maya.exe - 无磁盘:驱动器中没有磁盘.请将磁盘插入驱动器\ Device\Harddisk1\DR1 [取消,重试,继续]

我无法捕获异常,因为它实际上没有抛出Python错误.

显然,这只发生在已分配字母但未插入驱动器的可移动驱动器上.

有没有办法解决这个问题,而没有特别告诉脚本哪些驱动器跳过?

在我的场景中,我在学校实验室,驱动器号码根据我所在的实验室计算机而变化.此外,我没有访问磁盘管理的安全权限.

python windows error-handling path disk

9
推荐指数
2
解决办法
1万
查看次数

使用PHP cURL发送短信的简单GET请求

我正在创建快速的Web应用程序,需要从PHP代码中发送php创建的消息.cURL显然是这项工作的工具,但我很难理解它以使其正常工作.

我正在处理的API的文档就在这里.特别是我想使用这里记录的简单的基于GET的短信通知.后一种资源表明GET API只是:

http://sms2.cdyne.com/sms.svc/SimpleSMSsend?PhoneNumber={PHONENUMBER}&Message={MESSAGE}&LicenseKey={LICENSEKEY}
Run Code Online (Sandbox Code Playgroud)

事实上,如果我在浏览器中输入以下URL,我会得到预期的结果:

http://sms2.cdyne.com/sms.svc/SimpleSMSsend?PhoneNumber=15362364325&Message=mymessage&LicenseKey=2134234882347139482314987123487
Run Code Online (Sandbox Code Playgroud)

我现在正试图在php中创建相同的效果.这是我的尝试:

<html>
<body>
<?php
$num = '13634859126';
$message = 'some swanky test message';

$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, "http://sms2.cdyne.com/sms.svc/SimpleSMSsend?PhoneNumber=".urlencode($num)."&Message=".urlencode($message)."&LicenseKey=2345987342583745349872");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
?>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我的其他PHP网页工作正常,所以我知道php和apache都设置正确.但当我将浏览器指向上面的页面时,我的手机上没有任何消息.任何人都可以告诉我我做错了什么吗?

注意:所有数字都是伪造的...正如您可能怀疑的那样.

php sms curl http-get

4
推荐指数
1
解决办法
2万
查看次数