关于 python 虚拟环境管理器的选择

2022-09-24
阅读 1 分钟
1.8k
比较高级的 python 虚拟机环境和包管理器,有两个方案:pipenv 和 poetry这两个货色,不仅仅可以帮我们做『虚拟环境管理』:创建虚拟环境删除虚拟环境还可以帮我们做『包管理』但是,我不建议,用他们做包管理!为什么?因为狗拿耗子。pipenv、poetry 安装包的时候,非常喜欢狗拿耗子,帮我们额外做一堆的版本冲突检查:...

开发环境的转变:从 vagrant 到 docker

2022-09-24
阅读 1 分钟
702
开发环境、生产环境:开发环境:就是程序猿在自己的电脑上写代码,并测试生产环境:赚钱用的环境就是生产环境老旧的模式、新模式:老模式,就是虚拟机新模式,就是容器在远古时期,程序猿在自己的电脑上,使用 vagrant + vbox 搭建开发环境但是新的 todo

apple silicon 的 mac 如何安装新版本 cpython 解释器?

2022-09-24
阅读 2 分钟
2.7k
cpython 从 python3.9 支持 apple silicon 的 mac(这里指的是 cpython 官网提供了编译好的 arm 版本的 cpython 解释器)

python 处理 signal 的回调函数的时候,如何添加类型注释?

2022-09-24
阅读 1 分钟
1.2k
signal 的回调函数, 需要两个参数:signum 和 framesignum 的 type 是一个 intframe 的 type 是什么呢?frame 的 type 是 frame classframe class 在哪里?是内建的怎么 import 后加注释?无法导入,但是 python 在 types 中提供了 FrameType 来给我们做 typing hint {代码...} 输出如下: {代码...}

apple silicon 是大端还是小端?

2022-09-22
阅读 1 分钟
3.2k
apple silicon 的 mac 可以使用 cassandra python sdk 客户端吗?cassandra python sdk 客户端 的介绍中写了,不支持小端因为我现在用的是 apple silicon 的 mac,所以,我想知道支持不支持?python-driver {代码...} 输出:1为小端模式,0为大端模式;解析:awk命令为文本处理。 {代码...} 所以是小端!

jetbrains 的永久许可证是从订阅期开始时算还是订阅期结束时算?

2022-09-18
阅读 1 分钟
2.9k
2021-08-19 的我的学生许可证到期了,我为了继续使用 jetbrains 全家桶,花真金白银购买了一年的许可证根据介绍,说是当前版本可以终身免费用,这里就有歧义了:从订阅期开始时的 last 版本终身免费用?从订阅期结束时的 last 版本终身免费用?到了 2022 年 9月 ,有答案了,因为我的许可证过期了。我发现,所有 2022 年...

使用腾讯云内网镜像源给 docker 加速

2022-09-14
阅读 1 分钟
3.8k
如果你是用的腾讯的云服务器,千万要换成内网地址,这样可以跑到 50MB/s以上;如果不小心用了公网的速度就降到了 1MB/s 左右了,虽然这不是什么大问题,但是能快一点是一点。

crontab 开机启动 frp 失败

2022-09-06
阅读 1 分钟
2.7k
crontab 开机启动 frp : {代码...} 但是没有一次是成功的,看看 run.log 里面都是啥吧! {代码...} 可看到 network is unreachable为什么呢?我猜测就是 crontab 开机启动 frp 太快了,Linux 的网络模块可能都还没有正常工作,就可以启动 frp 了,自然就网络不可达如何解决呢?加一个 sleep 10 {代码...} 此时来看,一...

记录一个 es license 过期的解决方案

2022-09-05
阅读 1 分钟
6.9k
之前想用 dbeaver 连接 elasticsearch,但是会遇到 current license is non-compliant for [jdbc] 问题。

python and 运算符的妙用——优雅的切换 range 和 count

2022-09-04
阅读 1 分钟
1.9k
有这么一个问题,如何优雅的实现一个函数,当参数 limit 为 0 的时候,使用无限迭代,当 limit 大于 0的时候,有限迭代:直接揭秘结果: {代码...} 如果你对这个 limit and range(limit) or count() 语法不理解,可以先看看官方文档:布尔运算 --- and, or, not我们来一点点解析这个语法:当 limit 为 0 的时候,我们来看...

eventlet 的 link 函数用法

2022-09-04
阅读 4 分钟
2.2k
在看 nameko 的源码的时候,经常看到 gt.link(self._handle_thread_exited) 的用法 {代码...} eventlet 的文档中,并没有描述这个 api 是干嘛的,所以我看了一下 eventlet 源码,其中有关于他的注释: {代码...} 英文是看不懂的,就用翻译软件翻译一下吧:原文: {代码...} 译文: {代码...} 所以,这 link 是干啥的?其...

kombu 的 serializer 选择 json 和 yaml 有什么区别?

2022-09-02
阅读 4 分钟
2k
前言kombu 投递 message 的时候,支持多种序列化方式:jsonyamlpickle今天的主题就是,看看一个 dict 分别被这三种序列化方式序列化后,message 会长成什么样子(以 rabbitmq 管理界面的样子为准)实验先准备一个 dict ,value 的 type 有 str、int、datetime、sub dict 等多种类型 {代码...} 我们先来看看不指定 serializ...

subprocess 会阻塞 eventlet 的并发吗?

2022-08-30
阅读 3 分钟
1.9k
如果不打猴子补丁,就会阻塞: {代码...} 一共花了 9 秒 {代码...} 如果打猴子补丁,就会不会阻塞: {代码...} 这个时候,一共就用了 3 秒 {代码...}

loguru serialize 减少字段

2022-08-28
阅读 4 分钟
2.5k
seo 优化loguru 去掉部分字段loguru 去掉 record 字段loguru 如何只留下自己想要的字段自定义 loguru 输出loguru serialize 默认的字段太多了,大多数根本不需要,大大浪费了日志存储空间: {代码...} 输出: {代码...} 我们需要减少这些没用的字段使用类似『猴子补丁』的方式来实现: {代码...} 输出: {代码...} 原理...

win 如何卸载软件

2022-08-20
阅读 1 分钟
654
点击桌面左下角 win 图标,然后点击齿轮按钮会打开系统设置选应用然后就可以卸载你想卸载的了

nameko 和 peewee 混合使用会影响 TLS 复用数据库连接吗?

2022-08-16
阅读 1 分钟
811
nameko 并发模型用的是 eventlet 的 pool。处理每个任务的时候,都会创建一个 greenthread,然后提交到 pool 中去跑。

ubuntu20安装nodejs报错:由于没有公钥,无法验证下列签名

2022-08-08
阅读 3 分钟
3.4k
在 ubuntu20 中的 node 太 old 了,是 14我想安装一个 16就找了一个教程, 使用了下面的命令: {代码...} 然后 sudo apt update, 但是遇到了下面的报错: {代码...} 然后我是怎么解决的?其实就是少打了一个 -sudo rm sources.list.d/nodesource.list 删掉错误的结果错误的命令:curl -s https://deb.nodesource.com/setu...

nameko 投递不同大小消息的速率对比

2022-08-05
阅读 2 分钟
1k
可以先阅读:nameko 投递信息不持久化小体积投递 1000 bytes 的 message(不开持久化 NON_PERSISTENT)速率在 2000+投递 1000 bytes 的 message(开持久化 PERSISTENT)速率在 200-中等体积投递 100 KB 的 message(不开持久化 NON_PERSISTENT)速率在 1500 左右投递 100 KB 的 message(开持久化 PERSISTENT)速率在 12...

nameko 投递信息不持久化

2022-08-05
阅读 4 分钟
1.5k
nameko 投递的 message 是默认打开持久化的。但是 rabbitmq 对持久化信息的吞吐量堪忧,有的时候,需要非持久化信息来提速。将 delivery_mode=NON_PERSISTENT 设为 0 就好了(NON_PERSISTENT 就是 0) {代码...} message 不持久化,push 速率就可以到 2.5k/s上图是我在 macbook 上通过 wifi push 到服务器的,延迟如下:...

使用 chardet 判断文件编码需要注意的坑——过大的文件会导致高耗时

2022-07-28
阅读 1 分钟
2.8k
chardet 判断 stream:bytes 的时候,要短,但是不能太短越短越不准,越长越慢判断一个 15MB 的 txt 文件,需要耗时 5-20 秒所以,我建议,取前 256 个字节来判断,可以平衡速度和准确率 {代码...} 这样(指取前 256 字节)大概只需要 10-30 ms 就可以判断出文件编码还有一个需要注意点:就是一些明明是 gbk 编码的文件,...

loguru 如何轮换日志

2022-07-27
阅读 1 分钟
947
写日志,不能一直写,会把硬盘撑爆,要定期、定量、定时轮换我喜欢按量轮换对于 loguru 的按量轮换,一般是这样: {代码...} rotation='100 MB' 表示一个日志文件,最多到 100MB 就触发轮换retention=1 表示只保留一份日志文件到底是哪个狗举报的?

mysql select 需要提交 commit 吗?

2022-07-26
阅读 2 分钟
3.7k
看你的需求!mysql 的 innodb 支持多种事务隔离级别:READ UNCOMMITTEDREAD COMMITTEDREPEATABLE READSERIALIZABLE默认的隔离级别是 REPEATABLE READpgsql 的默认的隔离级别是 READ COMMITTED;sql server 默认是 READ UNCOMMITTED; oracle 默认是 Read Committed我们使用 mysql 的默认事务隔离级别,又关闭了自动提交事...

裸机使用 filebeat 采集裸机上的日志文件,并发到 elasticsearch

2022-07-23
阅读 6 分钟
3.3k
部署 elasticsearch 和 kibana因为是 demo 性质的使用,所以就用 docker-compose 简单跑一下 {代码...} /kibana.yml 的内容,主要是为了显示中文 {代码...} elasticsearch 和 kibana 的版本要一致。同样的,后面的 filebeat 也要版本一致!这次我们都用 7.17.1如果需要用 dbeaver 之类的工具连接 elasticsearch 遇到 cur...

nameko 使用 http 做 k8s 健康检查注意事项!

2022-07-19
阅读 1 分钟
1.1k
当你的任务是耗时任务的时候,不要用 http 来做健康检查这里的 http 指的是:@http('GET', '/health/') 这样的 http 装饰器nameko 有 max_workers 限制 pool 的大小, http 也是要排队的任务本身特别耗时,用 http client 就会 timeout

docker 打包 selenium+chromedriver+chrome 遇到的坑和解决方案

2022-07-17
阅读 10 分钟
8.3k
docker 跑 selenium 的时候遇到了很多坑,记录一下排坑过程Python 使用 selenium+chromedriver+chrome 实现网页截图Dockerfile {代码...} 让我们一行一行来看RUN (echo "deb http://mirrors.aliyun.com/debian/ buster main non-free contrib" > /etc/apt/sources.list) 这行的作用是使用 aliyun 的 debian...

Python 不写硬盘直接上传文件

2022-07-11
阅读 1 分钟
1.3k
你写了一个 api,接受 client 上传的文件,然后在上传到 oss,你会怎么做?先写硬盘,然后在上传到 oss?太笨了!你写了一个截图服务,截到的图要上传到 oss,你会怎么做?先写硬盘,在上传到 oss?太笨了!这篇文章教你重新做人!文本类型使用 io.StringIO {代码...} 输出结果如下: {代码...} 再看一个熟悉的: {代码....

numba 的缺点

2022-06-30
阅读 1 分钟
1.3k
先贴链接:ConstructsSupported constructs:conditional branch: if .. elif .. elseloops: while, for .. in, break, continuebasic generator: yieldassertion: assertPartially supported constructs:exceptions: try .. except, raise, else and finally (See details in this section)context manager: with (only ...

协程做并行也需要加锁吗?

2022-06-29
阅读 2 分钟
1.5k
需要的!为什么呢,以 python 的第三方协程实现 eventlet 为例子看下面的代码: {代码...} 输出结果: {代码...} 使用了锁之后,就正常了 {代码...} 输出结果: {代码...}

Python的线程池如何判断任务是否全部执行完毕?

2022-06-29
阅读 2 分钟
8.9k
If True then shutdown will not return until all running futures have finished executing and the resources used by the executor have been reclaimed.

nameko 是一个服务一个 amqp 连接,还是每个队列 work 函数一个 amqp 连接?

2022-06-29
阅读 2 分钟
1.2k
{代码...} nameko run services:AddService --config ./config.yaml 使用该命令,发现只有一个连接: {代码...} 但是这样,两个服务,一共两个 amqp 连接:所以 nameko 是一个服务一个 amqp 连接,还是每个队列 work 函数一个 amqp 连接? 这个问题的结论就是:nameko 是一个服务一个 amqp 连接