我有一些想要使用 Serde 的结构。像这个:
use serde::{Serialize, Deserialize};
#[derive(Serialize)]
struct GetLinkResponse {
error: String,
link: String,
}
Run Code Online (Sandbox Code Playgroud)
但编译器说:
Serialize导入未使用Serialize找不到use serde::{Serialize, Deserialize};
#[derive(Serialize)]
struct GetLinkResponse {
error: String,
link: String,
}
Run Code Online (Sandbox Code Playgroud)
我想我不明白use是如何工作的。有人可以解释一下我的错误是什么吗?
我决定尝试使用 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密钥?
我喜欢 Python 的 sqlite:它很简单,只需要一个额外的文件即可工作,并且没有额外的依赖项。它也受到花哨的 ORM 的支持,比如 peewee。但是有没有可以从 python 使用而无需安装任何其他程序的 nosql 数据库?我可以接受额外的 python 包,但我绝对不想为 Mongo 获取额外的容器。我有什么选择?
UPD:我做了一些研究,看起来我唯一的选择是litedb。代码看起来很棒,但根本没有文档,所以我想它现在无法使用
我想将字典转储到文件,就像将 Python 字典转储到 JSON 文件中一样。但我遇到了编码问题:\n当我简单地这样做时
\n\nprint(data) \nRun 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) 我有alpine:edge作为基本图像,并想在其中使用诗歌。我正在尝试像这样安装它:
\n\nRUN curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python\nRUN source $HOME/.poetry/env\nRun Code Online (Sandbox Code Playgroud)\n\n脚本运行没有错误,但是当我尝试实际使用它时,bash 说它没有安装:
\n\nStep 16/18 : RUN poetry install --no-dev\n ---> Running in 38ce454369cb\n/bin/sh: poetry: not found\nRun Code Online (Sandbox Code Playgroud)\n\n什么可能导致此问题?
\n\nUPD: 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) 我正在尝试从我的 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 脚本,它可以使用正常的方式处理一些文件
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?
假设我有一些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)
有没有其他更优雅的方法来做到这一点?
我有一个字符串,想要计算其中的某些元素。我写了一个代码:
#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实际如何工作?
我想从字符串中 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)
如何解决此问题并使我的代码正常工作?
我想加载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
假设我想从文件中读取一些字符串,并且对于每个字符串我想将其拆分。最后,我想获得字符串数组的数组。我尝试这样做的方法如下:
$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)