小编Kam*_*mal的帖子

在Windows上为Python 2.7构建lxml

我正在尝试在Windows 64位机器上为Python 2.7构建lxml.我找不到Python 2.7版本的lxml egg.所以我从源头编译它.我正在按照本网站上的说明操作

http://lxml.de/build.html

在静态链接部分下.我收到了错误

C:\Documents and Settings\Administrator\Desktop\lxmlpackage\lxml-2.2.6\lxml-2.2.
6>python setup.py bdist_wininst --static
Building lxml version 2.2.6.
NOTE: Trying to build without Cython, pre-generated 'src/lxml/lxml.etree.c' need
s to be available.
ERROR: 'xslt-config' is not recognized as an internal or external command,
operable program or batch file.

** make sure the development packages of libxml2 and libxslt are installed **

Using build configuration of libxslt
Building against libxml2/libxslt in one of the following directories:
  ..\libxml2-2.7.6--win32--w2k--x64\lib
  ..\libxslt-1.1.26--win32--w2k--x64--0002\lib
  ..\zlib-1.2.4--win32--w2k--x64
  ..\iconv-1.9.1--win32--w2k--x64-0001\lib
running bdist_wininst …
Run Code Online (Sandbox Code Playgroud)

python windows lxml building python-c-extension

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

golang使用频道超时

我正在使用goroutines/channels来检查网址列表是否可以访问.这是我的代码.这似乎总是回归真实.为什么超时案例没有被执行?即使其中一个网址无法访问,目标也是返回false

import "fmt"
import "time"

func check(u string) bool {
    time.Sleep(4 * time.Second)
    return true
}

func IsReachable(urls []string) bool {

    ch := make(chan bool, 1)
    for _, url := range urls {
        go func(u string) {
            select {
            case ch <- check(u):
            case <-time.After(time.Second):
                ch<-false
            }
        }(url)
    }
    return <-ch
}
func main() {
    fmt.Println(IsReachable([]string{"url1"}))
}
Run Code Online (Sandbox Code Playgroud)

go channels

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

在pyspark中创建一个大字典

我试图使用pyspark解决以下问题.我在hdfs上有一个文件,格式是查找表的转储.

key1, value1
key2, value2
...
Run Code Online (Sandbox Code Playgroud)

我想将它加载到pyspark中的python字典中,并将其用于其他目的.所以我试着这样做:

table = {}
def populateDict(line):
    (k,v) = line.split(",", 1)
    table[k] = v

kvfile = sc.textFile("pathtofile")
kvfile.foreach(populateDict)
Run Code Online (Sandbox Code Playgroud)

我发现表变量没有被修改.那么,有没有办法在spark中创建一个大的内存哈希表?

python apache-spark

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

这是正确使用增强条件变量吗?

我编写了以下程序,用于使用增强条件变量来交替增加和加倍计数器(增量优先).任何人都能告诉我这是否正确使用了增强条件变量.它工作正常.我不明白在wait函数调用中使用lock.condition.wait(lock)是什么意思?例如,在此程序中增量和乘法使用两个范围锁是什么.我该如何避免它们?

#include <boost/thread/thread.hpp>
#include <boost/thread/mutex.hpp>
#include <boost/bind.hpp>
#include <boost/thread/locks.hpp>
#include <boost/thread/condition_variable.hpp>
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;

int counter=0;
boost::mutex m1,m2;
bool incremented=false,multiplied=false;
boost::condition_variable c1,c2;
void Increment()
{
    {
        boost::mutex::scoped_lock lk(m1);
        counter++;
        incremented = true;
        c1.notify_one();

        while(!multiplied)
            c2.wait(lk);
        multiplied=false;

    }   
}
void Multiply()
{
    {
        boost::mutex::scoped_lock lk(m2);
        while(!incremented)
            c1.wait(lk);
        incremented = false;
        counter = counter*2 ;
        multiplied = true;
        c2.notify_one();
    }
}

void IncrementNtimes(int n){

    for(int i=0;i<n;i++){
        Increment();
    }
}

void MultiplyNtimes(int n){

    for(int i=0;i<n;i++){
        Multiply();
    } …
Run Code Online (Sandbox Code Playgroud)

c++ multithreading boost

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

简单的json转储函数与unicode

这是使用python2.4版本的简单json示例运行

>>> 
>>> orig='{"key1":"Val", "key2":"val2"}'
>>> origDict = simplejson.loads(orig)
>>> origDict
{'key2': 'val2', 'key1': 'Val'}
>>> origDict['key2'] = '\xe4\xbd\xa0\xe5\xa5\xbd'
>>> simplejson.dumps(origDict)
'{"key2": "\\u4f60\\u597d", "key1": "Val"}'
Run Code Online (Sandbox Code Playgroud)

dumps函数正在用unicode版本替换字节字符串.有没有办法让它不这样做,只返回'{"key2":"\ xe4\xbd\xa0\xe5\xa5\xbd","key1":"Val"}'?

python unicode simplejson

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