小编vit*_*ral的帖子

为什么我不能在python中创建一个轮子?

以下是我正在运行的命令:

$ python setup.py bdist_wheel
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
   or: setup.py --help [cmd1 cmd2 ...]
   or: setup.py --help-commands
   or: setup.py cmd --help

error: invalid command 'bdist_wheel'

$ pip --version
pip 1.5.6 from /usr/local/lib/python3.4/site-packages (python 3.4)

$ python -c "import setuptools; print(setuptools.__version__)"
2.1

$ python --version
Python 3.4.1

$ which python
/usr/local/bin/python
Run Code Online (Sandbox Code Playgroud)

另外,我正在使用自制的python运行mac

这是我的setup.py脚本:https: //gist.github.com/cloudformdesign/4791c46fe7cd52eb61cd

我疯了 - 我无法弄清楚为什么这不起作用.

python pip setuptools python-wheel

181
推荐指数
6
解决办法
10万
查看次数

iter和into_iter有什么区别?

我正在做Rust示例教程,其中包含以下代码片段:

// Vec example
let vec1 = vec![1, 2, 3];
let vec2 = vec![4, 5, 6];

// `iter()` for vecs yields `&i32`. Destructure to `i32`.
println!("2 in vec1: {}", vec1.iter()     .any(|&x| x == 2));
// `into_iter()` for vecs yields `i32`. No destructuring required.
println!("2 in vec2: {}", vec2.into_iter().any(| x| x == 2));

// Array example
let array1 = [1, 2, 3];
let array2 = [4, 5, 6];

// `iter()` for arrays yields `&i32`.
println!("2 in array1: {}", array1.iter() …
Run Code Online (Sandbox Code Playgroud)

rust

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

如何使编译的Regexp成为全局变量

我有几个在运行时定义的正则表达式,我想让它们成为全局变量.

为了给您一个想法,以下代码有效:

use regex::Regex; // 1.1.5

fn main() {
    let RE = Regex::new(r"hello (\w+)!").unwrap();
    let text = "hello bob!\nhello sue!\nhello world!\n";
    for cap in RE.captures_iter(text) {
        println!("your name is: {}", &cap[1]);
    }
}
Run Code Online (Sandbox Code Playgroud)

但我希望它是这样的:

use regex::Regex; // 1.1.5

static RE: Regex = Regex::new(r"hello (\w+)!").unwrap();

fn main() {
    let text = "hello bob!\nhello sue!\nhello world!\n";
    for cap in RE.captures_iter(text) {
        println!("your name is: {}", &cap[1]);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误:

error[E0015]: calls in statics are limited to constant functions, tuple structs and tuple …
Run Code Online (Sandbox Code Playgroud)

rust

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

更改Firefox上的默认语言

我一直在寻找一种方法来改变Firefox上的默认语言(Ubuntu 12.04).我没有做过任何工作,直到我现在才弄明白.(见下面我自己的答案)

有人知道更好的方法吗?

firefox spell-checking

8
推荐指数
2
解决办法
2296
查看次数

python asyncio运行事件循环一次?

我试图了解asyncio库,特别是使用套接字.我写了一些代码以试图获得理解,

我想异步运行发送器和接收器套接字.我到了最后一个发送所有数据的地步,但是我必须再运行一个循环.看看如何做到这一点,我从stackoverflow找到了这个链接,我在下面实现了 - 但是这里发生了什么?是否有更好/更理智的方式来做到这一点,而不是打电话stop跟随run_forever

stop()事件循环中的文档是:

停止运行事件循环.

调用stop()之前安排的每个回调都将运行.调用stop()后调度的回调将不会运行.但是,如果稍后再次调用run_forever(),那些回调将会运行.

而且run_forever()的文件是:

运行直到调用stop().

问题:

  • 为什么世界上run_forever唯一的出路run_once?这甚至没有意义
  • 有一个更好的方法吗?
  • 我的代码看起来像是使用asyncio库编程的合理方式吗?
  • 是否有更好的方法将事件添加到事件循环中asyncio.async()loop.create_task在我的Linux系统上出错.

https://gist.github.com/cloudformdesign/b30e0860497f19bd6596

python sockets asyncsocket python-asyncio

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

Python Socket给出了"[Errno 24]太多打开的文件"

我有以下UDP类发送大约100Hz的数据数组

from six import string_types
import socket
import struct

def convert_data(iterable):
    if isinstance(iterable, string_types):
        return str(iterable)
    data = tuple(iterable)
    format = "{0}H".format(len(data))
    print("Sending data:", format, data)
    if max(data) > 2**16 - 1:
        raise ValueError(max(data))
    if min(data) < 0:
        raise ValueError(min(data))
    return struct.pack(format, *data)

class UDP(object):
    def __init__(self, ip, port):
        self._ip = ip
        self._port = port
        self.socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        self.socket.connect((ip, port))

    def send_data(self, data):
        message = convert_data(data)
        return self.socket.sendall(message)
Run Code Online (Sandbox Code Playgroud)

成功发送约一分钟后出现以下错误:

Traceback (most recent call last):
  File "take_analogue_data.py", line 13, …
Run Code Online (Sandbox Code Playgroud)

python sockets

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

为什么Rust无法识别变量是&str?

下面的代码编译并运行正常:

use std::fmt::Display;

fn display(x: &str) {
    println!("{}", x);
}

fn main() {
    let s: &str = "hi there";
    display(s);
}
Run Code Online (Sandbox Code Playgroud)

但是,如果您将display功能更改为

fn display(x: &Display)
Run Code Online (Sandbox Code Playgroud)

它给出以下错误:

src/main.rs:9:13: 9:14 error: the trait `core::marker::Sized` is not implemented for the type `str` [E0277]
src/main.rs:9     display(s);
Run Code Online (Sandbox Code Playgroud)

通过改变display(s)display(&s)它再次工作.

这里发生了什么?显然类型是&str,但什么时候&Display是输入参数,它不能识别.

注意:&34也可以作为一个参数.难道这是因为Display实际的执行&str,而不是str

traits rust

6
推荐指数
2
解决办法
239
查看次数

有没有一种好方法可以在 vim 中为单个文件禁用所有插件?

我正在处理一个巨大的文件,所以 vim 非常滞后。如果它会这么慢,我不需要所有插件。有没有一种好方法可以只为一个文件禁用所有插件?

谢谢

vim plugins

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

从可比较的、不可哈希的项目列表中删除重复项的最快方法

如果我只知道列表元素可以排序,如何从列表中删除重复项?(我也不关心列表中项目的顺序。)

现有问题,例如如何从 Python 列表中删除重复项并保持顺序?删除列表中的重复项需要使用集合,即要求列表中的项目是可散列的。 就我而言,哈希能力不是保证。

python list duplicates

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

返回选项时有些不需要吗?

我正在做更多的组合器 "Rust by Example"的一部分,并决定自己去看看它用了多少努力map代替and_then.

在我的尝试中,我遇到了一些非常奇怪的东西(它甚至看起来像编译器错误).它看起来像我只需要返回一个Food类型时,返回类型应该是Option(Food)

在我看来,cookable下面的功能应该可以简化为一行:

have_ingredients(food).map(|f| can_cook(f))
Run Code Online (Sandbox Code Playgroud)

显然它也可以是以下内容:

have_ingredients(food).and_then(can_cook)
Run Code Online (Sandbox Code Playgroud)

虽然我没有看到这两个函数之间的根本区别,因为它们都返回了Option<U>.

这样做时我得到了一个奇怪的编译错误,所以我明确地将匹配分解如下 - 看起来编译器想要返回,Food即使返回类型是Some(Food).到底是怎么回事???

//! stack.rs
#[derive(Debug)]
enum Food {
    CordonBleu,
    Steak,
    Sushi,
}

#[derive(Debug)]
enum Day {
    Monday,
    Tuesday,
    Wednesday,
}

/// we don't have the ingredients for sushi
fn have_ingredients(food: Food) -> Option<Food> {
    match food {
        Food::Sushi => None,
        _ => Some(food),
    }
}

/// can cook anything but …
Run Code Online (Sandbox Code Playgroud)

rust

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