highlight

不要在 Flask 程序上层目录创建 .env 和 .flaskenv 文件

微笑、不失礼 提交于 2020-04-12 19:22:53
如果你安装了 python-dotenv,同时在 Flask 程序的上层目录创建了 .env 或 .flaskenv 文件,那么你将没法成功执行 flask run 等命令,因为这会导致 Flask 没法正确找到对应的 Flask 程序实例。 这个问题从 Flask 开始引入 CLI 机制开始就存在了,困扰了我两年。18 年偶然在用户根目录创建了一个 .env 文件,发现 Flask 程序没法运行了,当时遇到的各种 bug 太多,没仔细考虑这两者之间的关联。后来经过几次测试,才确定下来是上层目录的 .env 和 .flaskenv 文件导致,但是一时找不到原因,就暂时放下了。直到 19 年 11 月,花了几个小时排查,还是没找到原因。 中间花了很长时间来追踪 Windows 特定的 Flask 程序无法启动的 bug(TypeError: environment can only contain strings),实在是怕了。因为 Flask 的 CLI 涉及太多东西,有时你要钻进 python-dotenv( #101 ) 和 Werkzeug( #1320 ) 才能找到问题的原因。 但是问题不解决的话,你永远睡不好觉。《 Flask Web 开发实战 》第一部分的 示例程序 都放在了一个程序仓库,而且都放在了子目录,这意味着如果读者错误的在仓库根目录创建 .env 和

Spark Streaming 编程入门指南

佐手、 提交于 2020-04-12 18:09:48
Spark Streaming 是核心Spark API的扩展,可实现实时数据流的可伸缩,高吞吐量,容错流处理。可以从许多数据源(例如Kafka,Flume,Kinesis或TCP sockets)中提取数据,并且可以使用复杂的算法处理数据,这些算法用高级函数表示,如map、reduce、join和window。最后,可以将处理后的数据推送到文件系统,数据库和实时仪表板。实际上,可以在数据流上应用Spark的机器学习和图形处理算法。 在内部,它的工作方式如下。 Spark Streaming接收实时输入数据流,并将数据分成批次,然后由Spark引擎进行处理,以生成批次的最终结果流。 Spark Streaming提供了一种高级抽象,称为离散流或DStream,它表示连续的数据流。DStreams可以从Kafka、Flume和Kinesis等源的输入数据流创建,也可以通过在其他DStreams上应用高级操作创建。在内部,DStream表示为RDDs序列。 1. 了解Spark Apache Spark 是一个用于大规模数据处理的统一分析引擎 特性: 快 将工作负载运行速度提高100倍 Apache Spark使用最新的DAG调度程序,查询优化器和物理执行引擎,为批处理数据和流数据提供了高性能。 易用 可以使用Java,Scala,Python,R和SQL快速编写应用程序 。 通用

The APK File xxxx.apk Does Not Exist on Disk问题修复

痞子三分冷 提交于 2020-04-12 17:15:42
许久之前,用Espresso写过一些测试用例,但是执行的时候总是报这种错误 1 2 The APK file aaa-debug-4.2.8-886eda0d9d-400208.apk does not exist on disk. Error while Installing APK 解决方法 执行 File -> Sync Project with Gradle Files 即可。 来源: oschina 链接: https://my.oschina.net/u/4331670/blog/3231024

修复Gradle因代理设置导致的超时问题

拟墨画扇 提交于 2020-04-12 17:08:53
之前在项目中增加了一个项目依赖,可是配置的时候,怎么也无法下载下来。中终端执行gradle得到的错误日志如下 1 2 3 org . gradle . internal . resource . transport . http . HttpRequestException : Could not HEAD ' https: //jcenter.bintray.com/com/google/code/findbugs/jsr305/2.0.1/jsr305-2.0.1-sources.jar'. at org . gradle . internal . resource . transport . http . HttpClientHelper . performRequest ( HttpClientHelper . java : 96 ) at org . gradle . internal . resource . transport . http . HttpClientHelper . performRawHead ( HttpClientHelper . java : 72 ) 怀疑是网络的问题,先后开启了***工具都无法下载。后来摸索了一段时间,才发现了问题的所在。我在gradle.properties的代理错误设置有问题 1 2 3 4 5 6 7

北京小程科技有限公司/SIP协议

廉价感情. 提交于 2020-04-12 16:55:34
sip 这是使用Go实现的RFC3261-SIP协议。 主要结构体为 Message ,对应一条完整的SDP信息。 使用方法 在Go中引用本库: import "gitee.com/xiaochengtech/sip" 生成一个消息对象,解析外部收到的字符串: sipMsg , err := sip . NewMessage ( ioReader ) 根据请求消息,生成一个应答消息对象: rspMsg = sip . NewResponse ( sip . StatusXXX , rspMsg ) 将消息对象转换为字符串用于传输: transferString := sipMsg . String () TODO 完善字段支持。 参考资料 RFC3261-IETF RFC3261-中文版 来源: oschina 链接: https://my.oschina.net/u/4392911/blog/3230972

nmgwap/vue-antd

本小妞迷上赌 提交于 2020-04-12 16:55:14
vue+antd搭建后台管理界面模版(PC端) 技术栈 vue2 + vuex + vue-router + webpack + ES6/7 + axios + antd + 阿里图标iconfont 项目预览 http://nmgwap.gitee.io/vue-antd/#/login 说明 账号密码不为空即可 本项目主要用于熟悉如何用 vue2 架构一个后端管理平台项目 为了方便后期修改使用,模拟数据在页面中,具体修改看下面【强调】 如果对您有帮助,您可以点右上角 "Star" 支持一下 谢谢! ^_^ 或者您可以 "follow" 一下,我会不断开源更多的有趣的项目 开发环境 w7 Chrome 61 如有问题请直接在 Issues 中提,或者您发现问题并有非常好的解决方案,欢迎 PR 👍 目录结构 ├── /public/ # 公共文件 ├── /src/ # 源码目录 │ ├── /api/ # 请求 │ ├── /assets/ # 组件静态资源(图片) │ ├── /components/ # 公共组件 | ├── /languages/ # 多语言配置 | ├── /minxins/ # minxins │ ├── /router/ # 路由配置 │ ├── /styles/ # 公共样式 │ ├── /views/ # 路由组件(页面维度) │ ├──

在 Ubuntu 20.04 中完全进入深色模式 | Linux 中国

ぐ巨炮叔叔 提交于 2020-04-12 10:37:04
深色模式是 Ubuntu 20.04 最受瞩目的新功能之一了。任何版本的 Ubuntu 都可以通过安装深色主题让用户界面拥有一个深色的外观,但在 Ubuntu 20.04 中,这个过程变得更简单。 -- Abhishek Prakash(作者) 在 Ubuntu 20.04 中,无需额外安装主题,默认主题(称为 Yaru)本身就带有三种模式,其中就包括深色模式。 下面我会展示如何将 Ubuntu 系统完全设置为深色模式。 在 Ubuntu 20.04 打开深色模式 https://www.zhihu.com/video/1232401133236064256 这个步骤是在 GNOME 桌面上进行的,如果你 使用的是其它桌面 ,你看到的可能会和下面的截图不一样。 按下 super 键(或 Windows 键),然后输入 “settings”,就可以找到系统设置。 Search for Settings 在系统设置中,进入“ 外观(Appearance) ”部分,就可以看到 浅色(light) 、 标准(standard) 和 深色(dark) 三个选项。既然要使用深色模式,那自然而然要选择“深色”这个选项了。 Enable Dark Theme in Ubuntu 完成设置以后,使用了 GTK3 的应用程序都可以跟随深色模式。因此你会看到系统中包括文本编辑器、终端

[翻译] Scalene: 一个 Python 的高性能 CPU 内存分析器

那年仲夏 提交于 2020-04-12 07:31:29
原文标题:scalene: a high-performance CPU and memory profiler for Python 原文链接: https:// github.com/emeryberger/ scalene/blob/master/README.md Scalene: 一个 Python 的高性能 CPU 内存分析器 by Emery Berger 关于 Scalene Scalene 是一个 Python 的高性能 CPU 和 内存分析器,它可以做到很多其他Python分析器不能做到的事情。它在能提供更多详细信息的同时,比其他的分析器要快几个数量级。 Scalene 是 很快的 。 它使用采样的方式而不是直接测量或者依靠Python的追踪工具。它的开销一般不超过10-20% (通常更少)。 Scalene 是 精确的 。和大部分其他的Python分析器不同,Scalene 在 行级别 下执行CPU分析,在你的程序中指出对应代码行的执行时间。和大多数分析器所返回的功能级分析结果相比,这种程度的细节可能会更有用。 Scalane 可以区分在Python中运行的时间和在native代码(包括库)中花费的时间。大多数的Python程序员并不会去优化native代码(通常在Python实现中或者所依赖的外部库),所以区分这两种运行时间

Python memory profiler 上手实践

岁酱吖の 提交于 2020-04-12 07:31:16
为什么 相比起 C ,Python 有自己的内存管理,不需开发者自己管理内存。虽然方便,但有时候,我们可能会遇到内存占用过高,内存泄漏,甚至 OOM 的情况。这时,就需要我们做内存诊断,了解自己的代码:内存主要被分配在哪里,是否有无法释放的内存,又有多少内存会很快被释放,进程在高峰时占用多少内存,在低谷时占用多少内存。 怎么办 要了解进程的内存使用情况,我们可能首先会想到使用 TOP 命令,查看进程内存的使用情况。TOP 命令能够实时查看到进程对各种资源的使用情况,也是我们经常会使用的Linux命令。而在 Python 中,通过 psutil 模块也能很好的获取到这些信息。 这两个工具十分的强大,但是也很基础。TOP命令不方便从更多的维度诊断问题,比如难以从时间维度诊断内存,只能统计当前整个进程的内存使用情况,与代码脱离。而 psutil 十分强大,可以和代码结合,但是对逻辑代码侵入性太强,比如想在某个函数前后统计内存的使用情况,就需要在原有代码的基础上插桩,产生不必要的耦合,而不侵入逻辑代码则又和使用命令行没有太大区别。 这个时候,有经验的朋友可能会想到 line_profiler。line_profiler 是用于对函数进行逐行分析的模块,只需要通过装饰器,就可以计算出函数内每一行代码的执行时间,以提供时间维度的性能诊断。那么在内存维度上,是不是也有类似的模块呢?bingo

linux —— 基础(5)——磁盘

て烟熏妆下的殇ゞ 提交于 2020-04-11 19:55:37
https://linuxtools-rst.readthedocs.io/zh_CN/latest/base/04_disk.html 4. 磁盘管理 目录 磁盘管理 查看磁盘空间 打包/ 压缩 解包/解压缩 总结 日程磁盘管理中,我们最常用的有查看当前磁盘使用情况,查看当前目录所占大小,以及打包压缩与解压缩; 4.1. 查看磁盘空间 查看磁盘空间利用大小: df - h -h: human缩写,以易读的方式显示结果(即带单位:比如M/G,如果不加这个参数,显示的数字以B为单位) $df -h /opt/app/todeav/config#df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup00-LogVol00 2.0G 711M 1.2G 38% / /dev/mapper/vg1-lv2 20G 3.8G 15G 21% /opt/applog /dev/mapper/vg1-lv1 20G 13G 5.6G 70% /opt/app 查看当前目录所占空间大小: du - sh -h 人性化显示 -s 递归整个目录的大小 $du -sh 653M 查看当前目录下所有子文件夹排序后的大小: for i in `ls`; do du -sh $i; done | sort 或者: du -sh