我在Eclipse下使用PyDev来编写一些Jython代码.我有很多实例需要做这样的事情:
import com.work.project.component.client.Interface.ISubInterface as ISubInterface
Run Code Online (Sandbox Code Playgroud)
问题是PyDev总是将此标记为错误并说"Unresolved import:ISubInterface".代码工作正常,只是我宁愿在我的代码旁边没有这些小的白色/红色X标记,并且我的问题标签中充斥着这些错误.
有没有办法我可以添加一个魔术评论或类似的东西到行的末尾,使PyDev忽略错误的错误,类似于你可以像"#pylint:disable-msg = E1101"这样的评论来使PyLint忽略错误?
此外,在Jython中使用Java接口时,我有可能做错了.在这种情况下,我们非常感谢一点指导.
我在我的python项目中使用mypy进行类型检查.我也使用PyYAML来读取和编写项目配置文件.不幸的是,当使用PyYAML文档中推荐的导入机制时,这会在尝试导入本机库的try/except子句中生成虚假错误:
from yaml import load, dump
try:
from yaml import CLoader as Loader, CDumper as Dumper
except ImportError:
from yaml import Loader, Dumper
Run Code Online (Sandbox Code Playgroud)
在我的系统上CLoader并且CDumper不存在,这导致错误error: Module 'yaml' has no attribute 'CLoader'和error: Module 'yaml' has no attribute 'CDumper'.
有没有办法让mypy忽略这一行的错误?我希望我可以做这样的事情让mypy跳过这一行:
from yaml import load, dump
try:
from yaml import CLoader as Loader, CDumper as Dumper # nomypy
except ImportError:
from yaml import Loader, Dumper
Run Code Online (Sandbox Code Playgroud) 我正在使用JQuery设计一个应用程序,用户可以在div中拖动元素,自动添加滚动条并根据需要扩展scrollHeight/scrollWidth.当更改容器div的scrollHeight和scrollWidth时,我需要触发一个偶数.
不,不想使用滚动事件,因为1)当您开始将元素拖到边缘并且scrollHeight/scrollWidth更改时,不会触发滚动.2)当scrollHeight/scrollWidth没有改变时滚动触发.
任何提示?
我有一个autotools项目,可以在Mac上编译得很好,但在Linux(Ubuntu 12.04.1 LTS)下,命令行传递给gcc库相对于目标文件乱序.例如,autotools生成以下命令来编译我的代码,一个名为test.c二进制文件的文件命名为test:
gcc -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -g -O2 -lglib-2.0 -o test test-test.o
Run Code Online (Sandbox Code Playgroud)
此命令行失败:
/home/user/glib-test/test.c:4: undefined reference to `g_malloc`
/home/user/glib-test/test.c:5: undefined reference to `g_free`
Run Code Online (Sandbox Code Playgroud)
但是,如果我从命令行编译并将其切换,以便库引用位于目标文件之后,它可以正常工作:
gcc -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -g -O2 -o test test-test.o -lglib-2.0
Run Code Online (Sandbox Code Playgroud)
挑战在于我无法弄清楚如何强制Autotools以正确的顺序生成命令行.为了清楚起见,我在这里重现了简单的测试用例.首先是configure.ac:
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.59)
AC_INIT(glib-test, 1.0)
AC_CANONICAL_SYSTEM
AM_INIT_AUTOMAKE()
AC_PROG_CC
AM_PROG_CC_C_O
PKG_CHECK_MODULES(GLIB, glib-2.0 > 2.0)
AC_CONFIG_FILES(Makefile)
AC_OUTPUT
Run Code Online (Sandbox Code Playgroud)
接下来很简单Makefile.am:
CFLAGS=-Wall
bin_PROGRAMS=test
test_CFLAGS=$(GLIB_CFLAGS)
test_LDFLAGS=$(GLIB_LIBS)
test_SOURCES=test.c
Run Code Online (Sandbox Code Playgroud)
最后,这个最小测试用例的源代码,test.c:
#include <glib.h>
int …Run Code Online (Sandbox Code Playgroud) 您认为最重要的区别是什么?
需要做出昂贵的决定......
信息:
对于一个项目,我们正在寻找一种从其他站点导入小工具(朋友列表,待办事项列表等)的机制,这是OpenSocial应该擅长的.但是,我担心OpenSocial是否已经死亡.自2009年4月以来,OpenSocial 0.9的许多API页面都没有更新.我所看到的最近的一些更新只是垃圾邮件发布廉价德国药品的链接(例如,请参阅此历史页面).
OpenSocial还活着吗?或者像许多其他宏伟的想法一样,它被抛弃到互联网的浪费?
假设我有两个值向量:
a <- c(1,3,4,5,6,7,3)
b <- c(3,5,1,3,2)
Run Code Online (Sandbox Code Playgroud)
而且我想将一些函数 ,FUN应用于 的每个输入,以a对抗整个b,最有效的方法是什么。
更具体地说,在这种情况下,对于a'a' 的每个值,对于每个元素,我想知道有多少元素b大于或等于该值。天真的方法是执行以下操作:
sum(a < b)
Run Code Online (Sandbox Code Playgroud)
当然,这不起作用,因为它试图并行迭代每个向量并给我警告:
较长的物体长度不是较短物体长度的倍数
顺便说一句,该命令的输出是3.
但是,在我的情况下,我希望看到的输出是:
0 2 4 4 5 5 2
Run Code Online (Sandbox Code Playgroud)
当然,我意识到我可以使用 for 循环来做到这一点:
out <- c()
for (i in a) {
for (i in a) { out[length(out) + 1] = sum(b<i)}
}
Run Code Online (Sandbox Code Playgroud)
同样,我可以这样使用sapply:
sapply(a, function(x)sum(b<x))
Run Code Online (Sandbox Code Playgroud)
但是,我正在努力成为一名优秀的 R 程序员并远离 for 循环并且sapply似乎很慢。还有其他选择吗?
对于它的价值,我这样做了几百万次,其中length(b)总是小于1 到 30 length(a),length(a) …
我正在创建一个在它的模型中使用一些继承的Django应用程序,主要是因为我需要为UUID和引用分配所有内容,所以我知道它是什么类.这是基类的简化版本:
class BaseElement(models.Model):
uuid = models.CharField(max_length=64, editable=False, blank=True, default=lambda:unicode(uuid4()))
objmodule = models.CharField(max_length=255, editable=False, blank=False)
objclass = models.CharField(max_length=255, editable=False, blank=False)
class ChildElement(BaseElement):
somefield = models.CharField(max_length=255)
Run Code Online (Sandbox Code Playgroud)
我想确保自动设置objmodule,objclass和uuid.我从这篇文章中了解到,通过编写自己的构造函数来做这件事是个坏主意,而且我最好写一个工厂函数.所以现在我的BaseElement和ChildElement看起来像这样:
class BaseElement(models.Model):
uuid = models.CharField(max_length=64, editable=False, blank=True, default=lambda:unicode(uuid4()))
objmodule = models.CharField(max_length=255, editable=False, blank=False)
objclass = models.CharField(max_length=255, editable=False, blank=False)
def set_defaults(self):
self.objmodule = unicode(self.__class__.__module__)
self.objclass = unicode(self.__class__.__name__)
self.uuid = unicode(uuid4())
class ChildElement(BaseElement):
somefield = models.CharField(max_length=255)
@staticmethod
def create(*args, **kwargs):
ce = ChildElement(*args, **kwargs)
ce.set_defaults()
return ce
Run Code Online (Sandbox Code Playgroud)
这有效.我可以叫ChildElement.create(somefield="foo")我一定要得到一个合适的对象有uuid,objmodule和objclass …
我正在尝试使用 TypeScript 编译器tsc对注释良好的 JavaScript 文件进行类型检查。该文件使用了几个通过其他脚本加载的全局变量,为了简单起见,我们将仅使用一个全局变量L(用于 Leaflet)。
首先,我运行命令:
tsc --allowJs --checkJs mysource.js --outfile out.js --lib dom,es2015
Run Code Online (Sandbox Code Playgroud)
产生输出:
mysource.js:15:15 - error TS2304: Cannot find name 'L'.
15 const myMap = L.map('mapid')
Run Code Online (Sandbox Code Playgroud)
在本例中L,是我在 HTML 文件中导入 Leaflet JavaScript 代码时定义的全局变量。
其他工具(例如StandardJS)提供了声明全局变量的语法,但我不知道如何使用tsc. 在标准的情况下,我只有一行内容:
/* global L */
Run Code Online (Sandbox Code Playgroud)
需要明确的是,我使用它并不是tsc因为我使用 TypeScript,而是因为它能够对 JavaScript 源文件进行类型检查。我只是想要另一次检查以确保我的类型在 JavaScript 文件中匹配。
我在客户端JavaScript上使用wallaby.js运气很好,我想尝试让它在我的服务器端JavaScript上工作.但是,wallaby.js喜欢启动大量并行Web服务器,这会导致测试出现问题,因为它会继续抛出EADDRINUSE错误.
我的项目的基本脚手架是使用Yeoman angular-fullstack生成器完成的,因此我的服务器代码就位于其中,/server并且大多数方法都在/server/api.
到目前为止,我已经成功地使用以下配置进行工作:
module.exports = function () {
return {
files: [
'server/**/*.js',
{ pattern: 'server/**/*.spec.js', ignore: true }
],
tests: [
'server/**/*.spec.js'
],
env: {
type: 'node',
},
debug: true,
workers: {
initial: 1,
regular: 1,
recycle: false
}
};
};
Run Code Online (Sandbox Code Playgroud)
在这里你可以看到我将小袋鼠工人的数量设置为1并且不允许它回收工人.它第一次工作正常,但在我开始编辑文件后偶尔会EADDRINUSE出现错误.
是否有一种首选机制可以使用带有express的wallaby.js并避免它在同一端口上产生多个测试服务器进程,从而消除EADDRINUSE错误?
我正在编写一个基于OpenCL的粒子系统来加速大规模网络的可视化.实质上,这是一个两阶段问题,其中第一阶段对每个粒子施加负重力(典型的n体问题),因此它们全部排斥并且第二阶段然后基于粒子之间的边缘(或弹簧)吸引粒子.
在重力算法的每次迭代期间,每个粒子的位置(表示为一对浮子)受到彼此距离的影响(经典物理模型,没有阻力,保持简单).
在一个具有完美间隔的方形阵列粒子的情况下,重力的应用应该导致跨越X和Y轴的对称性.这在重力应用开始时就是如此,但随着时间的推移,将大量浮点数加在一起所固有的精度不足会导致小的不均匀偏差.这反过来传播通过整个n体系统并且发生对称性的损失.
避免这种情况的一种简单方法是使用双精度数字,但MacBook Pro上的GeForce 9600M GT不支持双精度数字.那么,在OpenCL中处理这些问题的好方法是什么?我已经考虑过截断我添加到几个小数的浮点数以避免这个问题,但这看起来有点笨拙.
我正在使用lxml进行 HTML 屏幕抓取,并且需要通过 选择一个元素text(),其方式类似于使用纯 XML 在另一个问题上所做的操作,但是无论发生什么情况,我都会收到无效谓词错误。我将其简化为以下示例:
import lxml.html
sample_html = "<div><h2>test string</h2><h2>other string</h2></div>"
sample_tree = lxml.html.fromstring(sample_html)
sample_tree.findall('.//h2[text()="test string"]')
Run Code Online (Sandbox Code Playgroud)
虽然这应该是有效的,但我不断收到错误:
File "<string>", line unknown
SyntaxError: invalid predicate
Run Code Online (Sandbox Code Playgroud)
text()有关如何在解析 HTML 时正确让 lxml 选择元素的任何提示吗?