V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  ClericPy  ›  全部回复第 80 页 / 共 133 页
回复总数  2641
1 ... 76  77  78  79  80  81  82  83  84  85 ... 133  
2020-03-19 17:28:47 +08:00
回复了 yuexuan 创建的主题 Python Python 异步 Web 框架 Fastapi 怎么样,已经够成熟到商业项目了吗
starlette 足够稳定, fastapi 更新还比较频繁, 看他们官网上, 用 fastapi 的那几个, 多数还是内部产品时候用...
不过得看项目类型吧, golang 那么新兴, gin 就算用户多, 也没到一统江湖的地步, 不也一样上大项目
2020-03-19 16:42:38 +08:00
回复了 haoyu7 创建的主题 Python 使用 django 开发的网站,响应速度很慢怎么办
感觉不像 Django 的问题, 也没代码你让人怎么猜啊, 最无脑的给个建议, scp/wget 传输试试上下行多少秒吧
2020-03-17 09:13:08 +08:00
回复了 black11black 创建的主题 Django Django 这性能,也慢的太夸张了.......
@laike9m #24
@a852695 #35
确实啊, 当年用 Bottle 的时候还没有 type hints, 一路基本上就是套装饰器然后返回 dict, 也不用我去拿 dict 包装 response
去年用 starlette 感觉一路很标准的中规中矩, 各方面设计都非常严格合理, 当时对 fastapi 的感觉就是一堆语法糖
真用上 fastapi 是今年, 这货的设计思路太美了, "真现代框架", 对 python 来说业务逻辑要思考的它大部分都简化了, 语法也省了很多

最喜欢的就是

通过类型注解自动做好类型转换, 毕竟前端 input 提交上来几乎就是字符串了, 被 pydantic 自动转对应类型 (int, Path, dict), 尤其是 pydantic + databases 操作数据库, 增删改查时候简直就是自带类型转换的轻量级 ORM
结合上面的操作, 以及提交 JSON 时候自动转对象, 写东西那叫舒服, 以前最头疼的类型验证替我兼容好了 int str 之类的互转, params 也是, 早前还觉得为这个丢性能不值得, 现在比什么都香, 让一个强类型语言做到类型的智能转换, 省了太多时间和代码了

PS: 昨晚上升级了下 mypy, 本来没报错的代码, 90% 全标红了... 最新版太严格了
2020-03-17 01:02:15 +08:00
回复了 black11black 创建的主题 Django Django 这性能,也慢的太夸张了.......
@black11black #18 另: 真指望 WSGI 下的 python 跑性能, falcon 算是比较硬了那一批了, 最近虽然也多了不少有 Cython 加成的新库, 但这个是真的又快又稳
最近因为很多代码写在协程里, 所以没怎么看过 WSGI 什么样子了, 毕竟: DRF 作者都去开发 uvicorn + starlette 了, 在 starlette 基础上另一个人搞的 fastapi, 最近用了半个月, 那体验无限接近人生第一次接触后端时候用 Bottle 的感觉, 闭着眼就写...
2020-03-17 00:59:04 +08:00
回复了 black11black 创建的主题 Django Django 这性能,也慢的太夸张了.......
@black11black #18 Django 在 ASGI 方面也算是先驱了... 所以一直好奇, 那么肿的一个框架, 就算用上 ASGI, 但大部分业务代码也是纯 python 的话, 性能还是吃亏, 就想看看有没有什么体验过的介绍下
2020-03-16 23:48:21 +08:00
回复了 black11black 创建的主题 Django Django 这性能,也慢的太夸张了.......
点进来以前以为会看到 channels 的...
2020-03-16 21:56:34 +08:00
回复了 fox1751 创建的主题 Python 找个人做个 PC 端的批量下载工具
感觉都用不上 python, 浏览器还是 JS 的天下...
https://www.tampermonkey.net/documentation.php?ext=dhdg&locale=zh#GM_download
@z25853 #38

这... 该不会就是下载时候在云端把路径检查了下敏感词吧...

如果是 txt pdf 之类的文件解析内部内容再提交到云上应该就违法了(虽然没仔细读用户协议)

现在用着 TIM 里的盘, 也基于微云的, 不知道会有这问题么
2020-03-15 23:00:04 +08:00
回复了 lithbitren 创建的主题 Python windows 下 select.select()只能打开 500 出头个文件怎么解决?
linux 上经常遇到超过最大 fds 数量, 得改内核配置 ulimit 什么的

Windows... 何必要用这玩意做生产环境呢, 搜搜 Windows 怎么提高默认最大 file handles 或者 file descriptors 吧... 老早以前还真找过, 忘了什么结果了, 最后被友军劝退别用 Windows
2020-03-15 17:46:00 +08:00
回复了 onice 创建的主题 Python Python 有必要自己写类型判断吗?
type hints 配合 mypy, 代码没执行就看到一大堆错误类型的报错

type hints 配合 pydantic, 类型不对的会尝试转换, 转换失败会报错, 类似于 var: int = '123' => 123, path: Path = '/' => Path('/')
2020-03-15 13:44:19 +08:00
回复了 SorRines 创建的主题 Python 自学 Python 小白求遇到不懂 求指教
第二个 if 开始都改成 elif
用 py 搞过 chrome 导出的 curl 转 requests args dict, 算是比较有用的吧, 关键信息转 JSON, 标准化+持久化, 平时抓包拿个 curl 一句不改就在代码里存了请求 meta, 还是挺好用的, golang 这边没找到类似的
2020-03-14 12:14:55 +08:00
回复了 vcent 创建的主题 Python pymysql 如何避免高并发处理同一条数据问题 谢大佬
虽然没太看明白整个需求...

不过操作 mysql 避免脏读什么的一般我也就三个套路: 锁写缓存读, 偶尔用队列, 重要操作丢给事务...
2020-03-14 09:16:40 +08:00
回复了 Cy86 创建的主题 Python Python 爬虫并发极限是多少呢?
并发极限没测过, 反正协程自己跑就挺快了, requests + 多线程大概比 httpx 协程慢个 10%, gevent 不测

Test without uvloop, 12 logical CPUs.
Windows-10-10.0.18362-SP0
3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 14:57:15) [MSC v.1915 64 bit (AMD64)]
================================================================================
test_aiohttp(3.6.2) : 2000 / 2000 = 100.0%, cost 1.158s, 1727 qps, 100.0% standard.
test_httpx(0.11.1) : 2000 / 2000 = 100.0%, cost 3.927s, 509 qps, 29.47% standard.

Test with uvloop, 1 logical CPUs.
Linux-4.15.0-13-generic-x86_64-with-Ubuntu-18.04-bionic
3.7.3 (default, Apr 3 2019, 19:16:38)
[GCC 8.0.1 20180414 (experimental) [trunk revision 259383]]
================================================================================
test_aiohttp(3.6.2) : 2000 / 2000 = 100.0%, cost 0.698s, 2866 qps, 100.0% standard.
test_httpx(0.11.1) : 2000 / 2000 = 100.0%, cost 2.337s, 856 qps, 29.87% standard.

以前随手测的, 请求本地 golang 只带 net/http 的 server
2020-03-13 12:48:02 +08:00
回复了 Ritter 创建的主题 Python gevent 为什么打了猴子补丁 还是会出现无限递归错误?
@Ritter #17 是啊, 就是 patch 位置不对, 一定要在第一行要执行的代码里打, 用多了就习惯了, 三四年没碰过 gevent 了...
2020-03-13 09:53:12 +08:00
回复了 Ritter 创建的主题 Python gevent 为什么打了猴子补丁 还是会出现无限递归错误?
在 docker 里调试如果费劲, 可以用最短案例先复现一个必定发生的代码吧, 那样举例子不会暴露源码也能更清晰地找问题...

又重新看了下你报错, 我好像误解了, 实际错误应该是 gevent 在 3.6 上给 ssl 打补丁的那个常见错误
2020-03-13 09:50:39 +08:00
回复了 Ritter 创建的主题 Python gevent 为什么打了猴子补丁 还是会出现无限递归错误?
@Ritter #14 实际上就是搞一个空文件把创建 app 对象的过程单独抛出来, 网上到处都是...
```
manage 因为我六七年没用 flask 命令行去初始化也不知道里面经历的什么... 看你上面图片 config 开头就引用 app 就是个典型错误, 因为补丁要打在所有操作之前, 而 config 的第一个操作不像打补丁而是 去 handler 里 import 东西, 所以这个错误不知道你后面修了没有
```

我回复里点 py 居然报了一大堆 请不要在每一个回复中都包括外链,这看起来像是在 spamming

这论坛也不能贴代码...
2020-03-13 09:27:17 +08:00
回复了 Ritter 创建的主题 Python gevent 为什么打了猴子补丁 还是会出现无限递归错误?
呃, 提几个常识

1. 猴子补丁要加在所有文件最顶端引用, 看你这情况 config.py 明显是在 manage.py 的顶端, 所以不该在后者打, 而是在前者那里打
2. gunicorn 借用 gevent 提速来优化 socket io 的时候, 连 workers 也要换的, 具体操作一般是 gunicorn -k gevent, 也就是你在 config.py 里的 worker class 那个参数, 所以就像第一点说的, 这个文件顶部才需要打, 不需要在 manage 里显性再 patch all 一次.

所以我一般 gunicorn handle flask 的时候, 是单独开一个符合 wsgi 的 py 文件, 里面产生一个 app, 而不是用 flask 自带生成的 manage.py 来操作

PS: 实际看你的报错, 最常见于违反相互引用的问题 (昨天刚写出来一个这种错误, 虽然大部分情况下 python 做过优化来防止多次引用, 但相互依赖还是违反常识的会递归报错), 比如 A 模块里的 a 在初始化的时候依赖 B 模块的 b 的初始化, 恰恰 B 在初始化的时候又依赖了 A 里 a 的初始化, 也就产生了死锁无限递归去初始化
2020-03-12 15:07:01 +08:00
回复了 somewheve 创建的主题 问与答 是我对开源理解错了还是这个臭弟弟 *******
就这, 可以开一个 Markdown 项目放用户名, 举报链接, 脏话截图列表了, 然后直接 Github api 批量 block
2020-03-10 10:51:22 +08:00
回复了 Murphy0123 创建的主题 Python 现在 Python 上还有其他能够操作微信的库吗
@wangyzj #3 ipad 那套听说有坑, 离职以后再也没碰过这种有点法律灰色的东西... 爬的话目前最稳定还是 hook 那套, 不过养号和买老爷机有点费事, 还要定期清理那个巨大的 sqlite 就行了(动不动二三十万图片居然存到 sqlite 里...)

@Murphy0123 #5 以前也给过我这需求, 不过不是硬性需求, 让我给推了, 成本太高了, 而且微信还自维护了一套用户行为规范, 号不养大很容易被封
1 ... 76  77  78  79  80  81  82  83  84  85 ... 133  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1395 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 36ms · UTC 16:27 · PVG 00:27 · LAX 09:27 · JFK 12:27
Developed with CodeLauncher
♥ Do have faith in what you're doing.