小编bir*_*n04的帖子

Rust说没有使用import,同时找不到import语句

我有一些想要使用 Serde 的结构。像这个:

use serde::{Serialize, Deserialize};

#[derive(Serialize)]
struct GetLinkResponse {
    error: String,
    link: String,
}
Run Code Online (Sandbox Code Playgroud)

但编译器说:

  1. Serialize导入未使用
  2. Serialize找不到
use serde::{Serialize, Deserialize};

#[derive(Serialize)]
struct GetLinkResponse {
    error: String,
    link: String,
}
Run Code Online (Sandbox Code Playgroud)

我想我不明白use是如何工作的。有人可以解释一下我的错误是什么吗?

rust

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

Git 正在寻找错误的 SSH 密钥

我决定尝试使用 SSH 来处理我的 GitHub 存储库。我修改了 git/.config 中的远程 url,所以现在它使用 SSH:

[remote "origin"]
        url = git@github.com:keddad/passpoint_server.git
        fetch = +refs/heads/*:refs/remotes/origin/*
Run Code Online (Sandbox Code Playgroud)

但是,例如,当我运行git fetch时,git 正在寻找错误的密钥:

(venv) keddad@keddad-pc:~/PycharmProjects/passpoint_server/.git$ git fetch
no such identity: /home/keddad/.ssh/github_rsa: No such file or directory
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Run Code Online (Sandbox Code Playgroud)

同时,添加到 GitHub 的真正密钥位于~/.ssh/id_rsa文件中 如何让 git 使用id_rsa密钥?

git ssh

11
推荐指数
2
解决办法
9597
查看次数

Python 中 sqlite 的 NoSQL 替代方案

我喜欢 Python 的 sqlite:它很简单,只需要一个额外的文件即可工作,并且没有额外的依赖项。它也受到花哨的 ORM 的支持,比如 peewee。但是有没有可以从 python 使用而无需安装任何其他程序的 nosql 数据库?我可以接受额外的 python 包,但我绝对不想为 Mongo 获取额外的容器。我有什么选择?

UPD:我做了一些研究,看起来我唯一的选择是litedb。代码看起来很棒,但根本没有文档,所以我想它现在无法使用

python database nosql

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

将字典转储为 UTF-8 格式的 json 文件

我想将字典转储到文件,就像将 Python 字典转储到 JSON 文件中一样。但我遇到了编码问题:\n当我简单地这样做时

\n\n
print(data) \n
Run Code Online (Sandbox Code Playgroud)\n\n

我在终端中得到类似的信息:

\n\n
{\'legend\': \'\\n\\r\\n\\t\\t\xd0\x9d\xd0\xb0 \xd0\xbf\xd1\x80\xd1\x8f\xd0\xbc\xd0\xbe\xd0\xb9 \xd1\x80\xd0\xb0\xd1\x81\xd0\xbf\xd0\xbe\xd0\xbb\xd0\xbe\xd0\xb6\xd0\xb5\xd0\xbd\xd1\x8b \xd1\x81\xd1\x82\xd0\xbe\xd0\xb9\xd0\xbb\xd0\xb0, \xd0\xb2 \xd0\xba\xd0\xbe\xd1\x82\xd0\xbe\xd1\x80\xd1\x8b\xd0\xb5 \xd0\xbd\xd0\xb5\xd0\xbe\xd0\xb1\xd1\x85\xd0\xbe\xd0\xb4\xd0\xb8\xd0\xbc\xd0\xbe \xd1\x80\xd0\xb0\xd1\x81\xd1\x81\xd1\x82\xd0\xb0\xd0\xb2\xd0\xb8\xd1\x82\xd1\x8c \xd0\xba\xd0\xbe\xd1\x80\xd0\xbe\xd0\xb2 \xd1\x82\xd0\xb0\xd0\xba, \xd1\x87\xd1\x82\xd0\xbe\xd0\xb1\xd1\x8b \xd0\xbc\xd0\xb8\xd0\xbd\xd0\xb8\xd0\xbc\xd0\xb0\xd0\xbb\xd1\x8c\xd0\xbd\xd0\xbe\xd0\xb5 \xd1\x80\xd0\xb0\xd1\x81c\xd1\x82\xd0\xbe\xd1\x8f\xd0\xbd\xd0\xb8\xd0\xb5 \xd0\xbc\xd0\xb5\xd0\xb6\xd0\xb4\xd1\x83 \xd0\xba\xd0\xbe\xd1\x80\xd0\xbe\xd0\xb2\xd0\xb0\xd0\xbc\xd0\xb8 \xd0\xb1\xd1\x8b\xd0\xbb\xd0\xbe \xd0\xba\xd0\xb0\xd0\xba \xd0\xbc\xd0\xbe\xd0\xb6\xd0\xbd\xd0\xbe \xd0\xb1\xd0\xbe\xd0\xbb\xd1\x8c\xd1\x88\xd0\xb5.\\r\\n    \\n\', \'input_specification\': \'\\n\\r\\n     \xd0\x92\xd1\x85\xd0\xbe\xd0\xb4\xd0\xbd\xd1\x8b\xd0\xb5 \xd0\xb4\xd0\xb0\xd0\xbd\xd0\xbd\xd1\x8b\xd0\xb5\\r\\n    \\n\\r\\n\\t\\t\xd0\x92 \xd0\xbf\xd0\xb5\xd1\x80\xd0\xb2\xd0\xbe\xd0\xb9 \xd1\x81\xd1\x82\xd1\x80\xd0\xbe\xd0\xba\xd0\xb5 \xd0\xb2\xd0\xb2\xd0\xbe\xd0\xb4\xd1\x8f\xd1\x82\xd1\x81\xd1\x8f \xd1\x87\xd0\xb8\xd1\x81\xd0\xbb\xd0\xb0 N\\xa0 (2 < N  < 10001) \xe2\x80\x93 \xd0\xba\xd0\xbe\xd0\xbb\xd0\xb8\xd1\x87\xd0\xb5\xd1\x81\xd1\x82\xd0\xb2\xd0\xbe \xd1\x81\xd1\x82\xd0\xbe\xd0\xb9\xd0\xbb \xd0\xb8 K\\xa0 (1 < K < N ) \xe2\x80\x93 \xd0\xba\xd0\xbe\xd0\xbb\xd0\xb8\xd1\x87\xd0\xb5\xd1\x81\xd1\x82\xd0\xb2\xd0\xbe \xd0\xba\xd0\xbe\xd1\x80\xd0\xbe\xd0\xb2. \xd0\x92\xd0\xbe \xd0\xb2\xd1\x82\xd0\xbe\xd1\x80\xd0\xbe\xd0\xb9 \xd1\x81\xd1\x82\xd1\x80\xd0\xbe\xd0\xba\xd0\xb5\\xa0\xd0\xb7\xd0\xb0\xd0\xb4\xd0\xb0\xd1\x8e\xd1\x82\xd1\x81\xd1\x8f N \xd0\xbd\xd0\xb0\xd1\x82\xd1\x83\xd1\x80\xd0\xb0\xd0\xbb\xd1\x8c\xd0\xbd\xd1\x8b\xd1\x85 \xd1\x87\xd0\xb8\xd1\x81\xd0\xb5\xd0\xbb \xd0\xb2 \xd0\xbf\xd0\xbe\xd1\x80\xd1\x8f\xd0\xb4\xd0\xba\xd0\xb5 \xd0\xb2\xd0\xbe\xd0\xb7\xd1\x80\xd0\xb0\xd1\x81\xd1\x82\xd0\xb0\xd0\xbd\xd0\xb8\xd1\x8f \xe2\x80\x93 \xd0\xba\xd0\xbe\xd0\xbe\xd1\x80\xd0\xb4\xd0\xb8\xd0\xbd\xd0\xb0\xd1\x82\xd1\x8b \xd1\x81\xd1\x82\xd0\xbe\xd0\xb9\xd0\xbb (\xd0\xba\xd0\xbe\xd0\xbe\xd1\x80\xd0\xb4\xd0\xb8\xd0\xbd\xd0\xb0\xd1\x82\xd1\x8b \xd0\xbd\xd0\xb5 \xd0\xbf\xd1\x80\xd0\xb5\xd0\xb2\xd0\xbe\xd1\x81\xd1\x85\xd0\xbe\xd0\xb4\xd1\x8f\xd1\x82 109)\\r\\n    \\n\', …
Run Code Online (Sandbox Code Playgroud)

python encoding json character-encoding

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

Poetry 在 Docker 中安装失败

我有alpine:edge作为基本图像,并想在其中使用诗歌。我正在尝试像这样安装它:

\n\n
RUN curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python\nRUN source $HOME/.poetry/env\n
Run Code Online (Sandbox Code Playgroud)\n\n

脚本运行没有错误,但是当我尝试实际使用它时,bash 说它没有安装:

\n\n
Step 16/18 : RUN poetry install --no-dev\n ---> Running in 38ce454369cb\n/bin/sh: poetry: not found\n
Run Code Online (Sandbox Code Playgroud)\n\n

什么可能导致此问题?

\n\n

UPD: env 文件似乎有问题:

\n\n
~/.poetry # source env\n/bin/sh: /usr/bin/env: line 1: ELF: not found\n/bin/sh: /usr/bin/env: line 2: \xef\xbf\xbd: not found\n/bin/sh: /usr/bin/env: line 3: \xef\xbf\xbd: not found\n/bin/sh: /usr/bin/env: \xef\xbf\xbd\n                        : not found\n/bin/sh: /usr/bin/env: \xef\xbf\xbd\xef\xbf\xbd: not found\n/bin/sh: /usr/bin/env: \xef\xbf\xbde\xef\xbf\xbdmgUa: not found\n/bin/sh: /usr/bin/env: M\xef\xbf\xbdZ\xef\xbf\xbd\xef\xbf\xbd!9!di9W\xdb\x93\xc5\xb9\xef\xbf\xbd@9\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdo\xef\xbf\xbd!\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd7e\xef\xbf\xbd\n                                                      \xef\xbf\xbd\xdd\xa3k\xef\xbf\xbd\xef\xbf\xbd: not found\n/bin/sh: /usr/bin/env: \xef\xbf\xbd\n                        \xef\xbf\xbdB\xef\xbf\xbd\xef\xbf\xbd\n …
Run Code Online (Sandbox Code Playgroud)

docker python-poetry

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

Dramatiq 不会将任务添加到队列中

我正在尝试从我的 Falcon API 方法运行一些戏剧演员,如下所示:

def on_post(self, req, resp):
    begin_id = int(req.params["begin_id"])
    count = int(req.params["count"])

    for page_id in range(begin_id, begin_id + count):
        process_vk_page.send(f"https://vk.com/id{page_id}")

    resp.status = falcon.HTTP_200
Run Code Online (Sandbox Code Playgroud)

我的代码进入“发送”方法,通过循环没有任何问题。但是队列中没有新任务!演员本身没有被调用,我的经纪人中的“默认”队列是空的。如果我设置自定义队列,它仍然是空的。我的演员看起来像这样:

@dramatiq.actor(broker=broker)
def process_vk_page(link: str):
   pass
Run Code Online (Sandbox Code Playgroud)

经纪人在哪里

broker = RabbitmqBroker(url="amqp://guest:guest@rabbitmq:5672")
Run Code Online (Sandbox Code Playgroud)

RabbitMQ 日志告诉它连接正常

我在调试器中做了一些额外的研究。它得到的消息(这是指被发送到经纪人)的罚款,并broker.enqueue在Actor.send_with_options()返回无例外,虽然我不能真正得到它的内在逻辑。我真的不知道它为什么会失败,但肯定是RabbitmqBroker.enqueue()导致了问题。

Broker 是 Erlang 22.2.1上的 RabbitMQ 3.8.2,在 Docker 中从rabbitmq Docker Hub 镜像运行,默认设置。Dramatiq 版本是 1.7.0。

在 RabbitMQ 日志中,应用程序启动时只有与代理的连接,当我关闭它时断开连接,如下所示:

2020-01-05 08:25:35.622 [info] <0.594.0> accepting AMQP connection <0.594.0> (172.20.0.1:51242 -> 172.20.0.3:5672)
2020-01-05 08:25:35.627 [info] <0.594.0> connection <0.594.0> (172.20.0.1:51242 -> 172.20.0.3:5672): …
Run Code Online (Sandbox Code Playgroud)

python dramatiq

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

Python 脚本在用 VS 代码打开时找不到文件,但在终端上工作正常

我有一个 python 脚本,它可以使用正常的方式处理一些文件

with open("input.txt", "r") as file:
Run Code Online (Sandbox Code Playgroud)

并且在同一个文件夹中有 input.txt。问题是,当我用终端启动它时,比如

keddad@keddad-pc:~/bioinformatics-algorithms/1.3/PatternMatcher$ python3 ~/bioinformatics-algorithms/1.3/PatternMatcher/main.py
Run Code Online (Sandbox Code Playgroud)

它运行良好,但是当我尝试使用 VS Code 调试器/无调试器运行它时,它只是找不到文件:

keddad@keddad-pc:~/bioinformatics-algorithms$ cd /home/keddad/bioinformatics-algorithms ; env PYTHONIOENCODING=UTF-8 PYTHONUNBUFFERED=1 /usr/bin/python3 /home/keddad/.vscode/extensions/ms-python.python-2019.8.30787/pythonFiles/ptvsd_launcher.py --default --nodebug --client --host localhost --port 46499 /home/keddad/bioinformatics-algorithms/1.3/PatternMatcher/main.py 
Traceback (most recent call last):
  "some traceback here"
  File "/home/keddad/bioinformatics-algorithms/1.3/PatternMatcher/main.py", line 19, in <module>
    main()
  File "/home/keddad/bioinformatics-algorithms/1.3/PatternMatcher/main.py", line 10, in main
    with open("input.txt", "r") as file:
FileNotFoundError: [Errno 2] No such file or directory: 'input.txt'
Run Code Online (Sandbox Code Playgroud)

如何让 VS Code 以它们在同一目录中找到文件的方式启动我的 scipts?

python visual-studio-code

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

使用 Pydantic 以优雅的方式检查 List 是否为空

假设我有一些BaseModel,我想检查它的options列表是否为空。我可以完美地做到这一点validator

class Trait(BaseModel):
    name: str
    options: List[str]

    @validator("options")
    def options_non_empty(cls, v):
        assert len(v) > 0
        return v
Run Code Online (Sandbox Code Playgroud)

有没有其他更优雅的方法来做到这一点?

python pydantic

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

为什么在处理字符串时std :: count将常量传递给lambda而不是char?

我有一个字符串,想要计算其中的某些元素。我写了一个代码:

#include <iostream>
#include <set>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
int main(){
    string a;
    cin >> a;
    int b = count(a.begin(), a.end(), [](char g) {return (g == '"' or g == '.' or g == ',' or g == ';' or g == ':' or g == '!' or g == '?');});
    cout << b;
}
Run Code Online (Sandbox Code Playgroud)

由于std :: count应该返回等于另一个元素(指定为函数的第三个参数)的元素数,或者通过将元素一对一传递给该函数而满足某个函数的元素数,因此我希望它可以将chars传递给我lambda函数。我在CPPreference的最后一个示例中撰写了大部分内容,但是看起来它的工作方式并非我期望的那样。在编译期间,我的lambda函数遇到错误:

/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/predefined_ops.h:241:17:错误:无效的操作数转换为二进制表达式(“ char”和“ const(/home/keddad/CLionProjects/olimp/main.cpp:12:39处的lambda)”)){return * __ it == _M_value; }

因此,似乎count将某种常量传递给我的little函数,稍后它将尝试将其与char比较(并丢弃错误)。如何使我的代码正常工作?std :: count实际如何工作?

c++ stl

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

使用迭代器从 std::string 中获取子字符串

我想从字符串中 char 的第一次出现到字符串末尾获取一个子字符串。我以为我可以只使用构造函数,就像在这个问题中一样,但它并没有真正起作用。当我这样做时:

string(input.find(' ')+1, input.end()-1)
Run Code Online (Sandbox Code Playgroud)

我面临“无构造函数”错误

error: no matching constructor for initialization of 'std::__cxx11::string' (aka 'basic_string<char>')
Run Code Online (Sandbox Code Playgroud)

如何解决此问题并使我的代码正常工作?

c++ string iterator std

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

“CREATE EXTENTION IF NOT EXISTS”并没有真正检查扩展是否不存在

我想加载cube扩展,但它可能已经加载了。所以我这样做

CREATE EXTENSION IF NOT EXISTS cube;
Run Code Online (Sandbox Code Playgroud)

文档说,当指定 IF NOT EXISTS 时,它不应该抛出错误。但它确实:

ff_postgres_1  | 2020-07-26 18:15:46.233 UTC [33] ERROR:  duplicate key value violates unique constraint "pg_extension_name_index"
ff_postgres_1  | 2020-07-26 18:15:46.233 UTC [33] DETAIL:  Key (extname)=(cube) already exists.
ff_postgres_1  | 2020-07-26 18:15:46.233 UTC [33] STATEMENT:  
ff_postgres_1  |                    CREATE EXTENSION IF NOT EXISTS cube;
Run Code Online (Sandbox Code Playgroud)

我在这里做错了什么?我正在运行 PostgreSQL 12.3

sql postgresql

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

ForEach-Object 以某种方式展平返回值

假设我想从文件中读取一些字符串,并且对于每个字符串我想将其拆分。最后,我想获得字符串数组的数组。我尝试这样做的方法如下:

$toArchive = "./folders.txt"
$folderList = Get-Content $toArchive | ForEach-Object { @($_.split(" ")) }
Run Code Online (Sandbox Code Playgroud)

Get-Content应该返回一个字符串数组,对于每个字符串,我希望得到另一个字符串数组。但我的却不folderList是这样Object[],好像它被压扁了。例如,如果我的输入文件如下所示:

Docs /home/keddad/Documents/
NotDocs /home/keddad/NotDocuments/
Run Code Online (Sandbox Code Playgroud)

我得到 4 个元素的数组:

Docs                                                                                                                                                                                                                                                                           
/home/keddad/Documents/                                                                                                                                                                                                                                                        
NotDocs                                                                                                                                                                                                                                                                        
/home/keddad/NotDocuments/
Run Code Online (Sandbox Code Playgroud)

我在这里做错了什么?

更新:只是为了澄清一下,它绝对是 4 个字符串的数组:

PS /home/keddad/Documents/tbackup> $toArchive = "./folders.txt"
PS /home/keddad/Documents/tbackup> $folderList = Get-Content $toArchive | ForEach-Object { @($_.split(" ")) }
PS /home/keddad/Documents/tbackup> $folderList.count
4
PS /home/keddad/Documents/tbackup> $folderList
Docs
/home/keddad/Documents/
NotDocs
/home/keddad/NotDocuments/
Run Code Online (Sandbox Code Playgroud)

powershell

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