小编gat*_*ado的帖子

另一个与多处理错误的混淆,'module'对象没有属性'f'

我知道这已经得到了回答,但似乎直接执行脚本"python filename.py"不起作用.我在SuSE Linux上有Python 2.6.2.

码:

#!/usr/bin/python
# -*- coding: utf-8 -*-
from multiprocessing import Pool
p = Pool(1)
def f(x):
    return x*x
p.map(f, [1, 2, 3])
Run Code Online (Sandbox Code Playgroud)

命令行:

> python example.py
Process PoolWorker-1:
Traceback (most recent call last):
File "/usr/lib/python2.6/multiprocessing/process.py", line 231, in _bootstrap
    self.run()
File "/usr/lib/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
File "/usr/lib/python2.6/multiprocessing/pool.py", line 57, in worker
    task = get()
File "/usr/lib/python2.6/multiprocessing/queues.py", line 339, in get
    return recv()
AttributeError: 'module' object has no attribute 'f'
Run Code Online (Sandbox Code Playgroud)

python multiprocessing

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

什么是最好的Scala构建系统?

我在这里看到过关于IDE的问题 - 哪个是Scala开发的最佳IDE?什么是模具的斯卡拉现状如何?,但我在IDE方面有过各种各样的经历.现在,我正在使用带有自动工作区刷新选项的Eclipse IDE,以及KDE 4的Kate作为我的文本编辑器.以下是我想解决的一些问题:

  1. 使用我自己的编辑器 IDE真的适合每个人使用他们的组件.我更喜欢Kate,但刷新系统非常烦人(它不使用inotify,相反,可能是10s轮询间隔).我不使用内置文本编辑器的原因是因为破坏的自动完成功能导致IDE挂起大约10秒.
  2. 仅重建已修改的文件 Eclipse构建系统已损坏.它不知道何时重建类.我发现自己几乎有一半的时间去投射 - >清洁.更糟糕的是,即使它已经完成了我的项目构建,几分钟后它会弹出一些奇怪的错误(编辑 - 这些错误似乎是先前通过项目解决的问题>干净,但随后又回来了. ..).最后,将"首选项/继续启动,如果项目包含错误"设置为"提示"似乎对Scala项目没有影响(即,即使存在错误也始终启动).
  3. 构建自定义我可以使用"nightly"版本,但我想修改和使用我自己的Scala构建,而不是IDE插件中内置的编译器.将[eg]传递-Xprint:jvm给编译器(打印出降低的代码)也是很好的.
  4. 快速编译虽然Eclipse并不总是正确构建,但它看起来确实很快 - 甚至比它更好fsc.

我看着Ant和Maven,虽然还没有使用过(我还需要花时间解决#3和#4).在我花时间让一个次优的构建系统工作之前,我想看看是否有人有其他建议.提前致谢!

更新 - 我现在正在使用Maven,将项目作为编译器插件传递给它.看起来足够快; 我不确定Maven的缓存是什么样的jar.可以使用Scala 2.8.0的当前存储库[ link ].原型非常酷,跨平台支持似乎非常好.但是,关于编译问题,我不确定fsc是否实际修复,或者我的项目是否足够稳定(例如类名不会改变) - 手动运行并不会让我感到烦恼.如果您想查看示例,请随意浏览我正在使用的[ github ] 的pom.xml文件.

更新2 - 从我看过的基准测试中,Daniel Spiewak是正确的,构建器比Maven更快(并且,如果正在进行增量更改,Maven的10秒延迟会变得烦人),所以如果可以制作兼容的构建文件,那么它可能是值得...

eclipse scala build

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

有没有Java相当于Python的defaultdict?

在Python中,defaultdict该类提供了一种方便的方法来创建映射key -> [list of values],在以下示例中,

from collections import defaultdict
d = defaultdict(list)
d[1].append(2)
d[1].append(3)
# d is now {1: [2, 3]}
Run Code Online (Sandbox Code Playgroud)

在Java中是否有相同的功能?

python java hashmap

40
推荐指数
5
解决办法
8816
查看次数

没有"cabal升级"的最佳解决方法是什么?

我想升级所有包,而不仅仅是特定的包cabal install --upgrade-dependencies.

haskell cabal

37
推荐指数
2
解决办法
9805
查看次数

python直接将字符串写入tarfile

有没有办法直接将字符串写入tarfile?从http://docs.python.org/library/tarfile.html看起来,只能添加已写入文件系统的文件.

python file-io file tar

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

如何为GHCi设置程序的命令行参数?

假设执行了一些Haskell文件

runghc Queens.hs gecode_compile
Run Code Online (Sandbox Code Playgroud)

现在,这失败了,我想调试它ghci.如何将选项传递给gecode_compile程序,以便getArgs正确读取?

谢谢!!

haskell ghci

34
推荐指数
3
解决办法
7770
查看次数

在Linux上防止内存不足(OOM)冻结的最佳方法是什么?

有没有办法让OOM杀手工作并阻止Linux冻结?我一直在运行Java和C#应用程序,其中通常使用分配的任何内存,并且(如果我正确理解它们)过度使用会导致计算机冻结.现在,作为临时解决方案,我补充道,

vm.overcommit_memory = 2
vm.overcommit_ratio = 10
Run Code Online (Sandbox Code Playgroud)

到/etc/sysctl.conf.

对任何能够解释为什么现有OOM杀手无法以保证方式正常运行的人都感到荣幸,只要内核耗尽"真实"内存就终止进程.

编辑 - 许多回应都与迈克尔的反应一致"如果你遇到与OOM杀手相关的问题,那么你可能需要修复任何导致你内存不足的问题".我不认为这是正确的解决方案.总会有应用程序出现错误,我想调整内核,这样我的整个系统就不会冻结.鉴于我目前的技术理解,这似乎不应该是不可能的.

linux memory out-of-memory linux-kernel

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

是否有任何Haskell技术用于混合(部分结构,部分未修改的文本)解析和重写?

示例问题:我想编写一个Haskell脚本,该脚本将突出显示(例如\fbox)文档中第一次出现的数学符号.希望这能帮助我确保我已经介绍了所有内容.

  • 正则表达式是不合适的,因为它们不会知道数学模式中的内容等,并且没有逻辑来计算事物,或者知道下一个变量\section实际上是一个新变量.

  • 我也不想为所有LaTeX编写解析器.似乎错误的概率很高,我真的只想写一个脚本,而不是商业程序.

我写了一个混合解析器 - 一个有一些结构,并将其余部分保留为文本,在这里回答一个问题.[ 你如何以贪婪的方式使用parsec?].但是,我的方法很麻烦.有更好,更正式的方式吗?

parsing haskell

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

Python中是否有库函数将生成器函数转换为返回列表的函数?

有很多次我认为生成器样式可以更直接地返回列表,例如,

def foo(input_array):
    for x in input_array:
        yield processed(x)
Run Code Online (Sandbox Code Playgroud)

def bar(input_array):
    accumulator = []
    for x in input_array:
        accumulator.append(processed(x))
    return accumulator
Run Code Online (Sandbox Code Playgroud)

(好吧,如果它真的那么简单,我会写map,但你明白了:生成器版本更清晰).但是,并不总是需要返回类型的发电机.是否有一个内置的装饰器,我可以用它来改变foo一个返回列表或元组的函数?我自己写的方式是,

import functools

def transform_return_value(transformer):
    def inner(f):
        @functools.wraps(f)
        def new_f(*argv, **kwargs):
            return transformer(f(*argv, **kwargs))
        return new_f
    return inner

@transform_return_value(list)
def foo(input_array):
    for x in input_array:
        yield processed(x)
Run Code Online (Sandbox Code Playgroud)

python generator

25
推荐指数
2
解决办法
9208
查看次数

Haskell - 如何在同一个文件中使用多个模块?

对不起,这是一个愚蠢的问题,但我无法弄清楚如何将多个模块放在同一个文件中.假设该文件名为A.hs.如果我把模块B放在第一位,即

module B where ...
module A where ...
Run Code Online (Sandbox Code Playgroud)

当我跑"ghci A"时,它抱怨它预期A(它不是顶级的,所以我不想打电话给"ghci A.hs").反过来说,它抱怨"输入模块上的解析错误").

这里有一个相关的错误,http://hackage.haskell.org/trac/ghc/ticket/2428.实际上没有办法得到这个,即使其他模块只在本地使用?

haskell module

24
推荐指数
2
解决办法
5273
查看次数