Python 的 async 协程当前真的能跑在生产环境吗?
👤 wudanyang
🏷️ #Python @v2ex_feed
🕒 2025-06-25 14:28:19 周三
🔗 阅读原帖
python async 启动协程时,如果当前协程不主动 await 释放,那就会一直占用事件循环,其他协程无法执行。
能想到的一些非常有风险的点:
1. 程序员忘了写 await ,单纯靠 cr 很难完全发现,导致阻塞
2. python 第三方库没有做 async 改造,不小心用了,导致阻塞
3. 有可能本地运行时间短,到了线上数据量大了,阻塞时间变长
问了 ds 和 chatgpt , 看起来都没有很好的解决方案
👤 wudanyang
🏷️ #Python @v2ex_feed
🕒 2025-06-25 14:28:19 周三
🔗 阅读原帖
真的感觉现在 AI 发展太快了,用 ai 直接就能从 0 撸一套系统..
👤 luozhsky
🏷️ #Python @v2ex_feed
🕒 2025-06-27 16:36:47 周五
🔗 阅读原帖
背景
本人 6-7 年产品,今年之前完全没有任何编程的经验,大学学的 c 算全还给老师了,不过早期工作有接触过一些 esxi ,nginx 、mysql 安装配置这些活吧..
然后今年入职的新公司确实很闲,就用上班摸鱼的时间,用 gemini 撸了一套自用的币价监控的系统.
大概是这样的:
1.前端完全 gemini 生成的,我就把我的需求提给他..按钮位置,色调什么的,复制黏贴,0 编辑;
2.mysql 的库表都是 gemini 给的命令,复制黏贴执行;
3.后端用 python ,各种包接口什么的有报错复制黏贴进去,gemini 给的修改方案,也跑起来了,这个调的久一点,大概用了 3-4 个小时吧,主要有一些和 nginx 配置的奇奇怪怪的问题;
4.监控的 python 通过 Ricky 的定时任务执行,每分钟执行一次,从库里取配置的币种价格,然后通过 cmp 和 gecko (备用)的接口拿的实时数据做比对,满足报警条件就推方糖大佬微信公众号和 tg 的 bot 给我自己。有一些简单的逻辑,比如 24 小时内只报警一次,价格跌落 5%重置预警状态等等..这个第一个版本很快,就是后面换数据源,调整预警逻辑改了好几轮,但是每次都很迅速,2-3 个对话就能解决吧。
5.nginx 的配置,免费的 ssl 证书申请什么的通过 gemini 给的命令和配置处理的,前后大概半个小时吧.
然后这个自用的价格预警监控就跑起来了..前后算起来大概十几个小时吧,上班的时候一边摸鱼一边弄,大概 3.4 天弄完的。
现在给我的感觉就是 AI 现在真的发展太快了…我感觉以后是不是没有初级程序员的空间了?一个中级以上的程序员,通过拆分和描述需求,就能把一些原来事务性的分配给初级程序员的工作给取代了?甚至代码更规范,效率更高..
网站链接就不放了,没有做登录校验啥的。
👤 luozhsky
🏷️ #Python @v2ex_feed
🕒 2025-06-27 16:36:47 周五
🔗 阅读原帖
想要学用 Python 写 API 接口程序,请问有什么推荐的书或者学习渠道?
👤 jerfoxu
🏷️ #Python @v2ex_feed
🕒 2025-07-03 16:47:51 周四
🔗 阅读原帖
目前的项目是简道云,会有涉及到简道云和小程序,以及一些第三方 API 接口,插件对接的需求,请问有什么可以快速学习这方面的书籍和渠道吗?
会频繁的获取数据,推送数据,对双方的数据进行增删改。
急!!!在线等,,,不甚感谢。
👤 jerfoxu
🏷️ #Python @v2ex_feed
🕒 2025-07-03 16:47:51 周四
🔗 阅读原帖
PythonLink 一个精选优质 Python 资源的导航站
👤 chinesehuazhou
🏷️ #Python @v2ex_feed
🕒 2025-07-04 18:32:18 周五
🔗 阅读原帖
PythonLink 一个精选优质 Python 资源的导航站,包含周刊、社区、博客和播客等
https://pythonlink.xyz
👤 chinesehuazhou
🏷️ #Python @v2ex_feed
🕒 2025-07-04 18:32:18 周五
🔗 阅读原帖
这一行代码没看懂:为什么把正常的 Print(transcript)放在 except 后面输出?
👤 lisisi
🏷️ #Python @v2ex_feed
🕒 2025-07-08 12:49:41 周二
🔗 阅读原帖
模型输出 audio 和 transcript:audio_string = ""
for chunk in completion:
if chunk.choices:
if hasattr(chunk.choices[0].delta, "audio"):
try:
audio_string += chunk.choices[0].delta.audio["data"]
except Exception as e:
print(chunk.choices[0].delta.audio["transcript"])
else:
print(chunk.usage)
wav_bytes = base64.b64decode(audio_string)
audio_np = np.frombuffer(wav_bytes, dtype=np.int16)
sf.write("audio_assistant_py.wav", audio_np, samplerate=24000)
第 7 、8 行:为什么把 print(chunk.choices[0].delta.audio["transcript"]) 放在 Exception 后面输出?
👤 lisisi
🏷️ #Python @v2ex_feed
🕒 2025-07-08 12:49:41 周二
🔗 阅读原帖
问一个关于 uv 的问题
👤 mayrockid
🏷️ #Python @v2ex_feed
🕒 2025-07-08 17:21:51 周二
🔗 阅读原帖
最近刚接触 uv ,有个问题请教各位大佬
我在%APPDATA%\uv\uv.toml
配置了清华源,如下[[index]]
url = "https://pypi.tuna.tsinghua.edu.cn/simple"
default = true
然后我拉了别人的代码,使用uv sync
安装环境,结果uv.lock
就变了
想问这是正常的吗?还是说我配置源的姿势不对?
👤 mayrockid
🏷️ #Python @v2ex_feed
🕒 2025-07-08 17:21:51 周二
🔗 阅读原帖
极短时间内找出目录下所有带 vba 代码的 excel 文件,并把它们转换成没有 vba 代码的 excel 文件
👤 chen1star
🏷️ #Python @v2ex_feed
🕒 2025-07-09 06:32:05 周三
🔗 阅读原帖
win11 中有一个文件目录,这个文件目录下有很多子目录以及子目录的子目录等等,在这些目录中有许多带 vba 代码的 excel 文件,也有许多不带 vba 的 excel 文件,大约几十万个,这些 excel 文件的版本不一样。现在需要编写一个程序,在极短时间内找出目录下所有带 vba 代码的 excel 文件,并把它们转换成没有 vba 代码的 excel 文件,保持原来的文件版本和原来的文件名,大家有什么好的方案?
👤 chen1star
🏷️ #Python @v2ex_feed
🕒 2025-07-09 06:32:05 周三
🔗 阅读原帖
如何使用程序识别视频里面是否含有水印、字幕?
👤 nikan999
🏷️ #Python @v2ex_feed
🕒 2025-07-10 20:28:48 周四
🔗 阅读原帖
水印是未知的,有没有相关模型或者工具可以识别呢
👤 nikan999
🏷️ #Python @v2ex_feed
🕒 2025-07-10 20:28:48 周四
🔗 阅读原帖
Python 官方发布版本管理工具 pymanager - 类似 pyenv, uv
👤 iorilu
🏷️ #Python @v2ex_feed
🕒 2025-07-14 10:43:53 周一
🔗 阅读原帖
https://github.com/python/pymanager
好像是刚发布的, 没看到有人讨论, 我也是昨天看到的
目前只支持 windows , 但官方产品应该以后会支持 linux, mac 把
官方总算认识到 python 的版本管理是个问题了
👤 iorilu
🏷️ #Python @v2ex_feed
🕒 2025-07-14 10:43:53 周一
🔗 阅读原帖
psycopg2 查询 sql 时报错
👤 Soulboy
🏷️ #Python @v2ex_feed
🕒 2025-07-17 10:02:26 周四
🔗 阅读原帖
V 友们,帮忙给点排查意见
问题不是必现的,偶尔就出现一次
问了 AI 给的也是模糊的的回答
连接 pg 数据库用的是 pool = PooledDB()
执行代码如下def dbQuery(self, sql):
conn = pool.connection()
cur = conn.cursor()
cur.execute(sql)
result = cur.fetchall()
cur.close()
conn.close()
return result
报错如下:could not receive data from server: Software caused connection abort (0x00002745/10053)
Traceback (most recent call last):
File "aaTestV5.py", line 844, in process
input_values = self.getInputValuesInfo()
File "aa_process.py", line 117, in getInputValuesInfo
order_list = super(tf, self).getInputValuesInfo()
File "aaTestV5.py", line 555, in getInputValuesInfo
results_fromno, no_list = self.getFromnoResult()
File "aa_process.py", line 366, in getFromnoResult
return self.getFromnoResultInner(False)
File "aa_process.py", line 320, in getFromnoResultInner
results_fromno, no_list = super(tf, self).getFromnoResult(True)
File "aaTestV5.py", line 119, in getFromnoResult
result_fromno1 = self.dbQuery(query_sql)
File "aa_process.py", line 391, in dbQuery
return super(tf, self).dbQuery(sql)
File "aaTestV5.py", line 823, in dbQuery
cur.execute(sql)
File "\python\lib\site-packages\dbutils\steady_db.py", line 598, in tough_method
result = method(*args, **kwargs) # try to execute
psycopg2.DatabaseError: could not receive data from server: Software caused connection abort (0x00002745/10053)
👤 Soulboy
🏷️ #Python @v2ex_feed
🕒 2025-07-17 10:02:26 周四
🔗 阅读原帖
更现代的 pytest
👤 heyzenxu
🏷️ #Python @v2ex_feed
🕒 2025-07-18 11:43:51 周五
🔗 阅读原帖
pytest 的原生展示信息这么多年了也没怎么变, 我参考 nextest 写了插件 pytest-modern, 提供更现代化的输出
[图片 1]
👤 heyzenxu
🏷️ #Python @v2ex_feed
🕒 2025-07-18 11:43:51 周五
🔗 阅读原帖
Django 长耗时任务,调用 ORM 时会出现"MySQL server has gone away"问题如何解决?
👤 a663
🏷️ #Python @v2ex_feed
🕒 2025-07-29 15:42:20 周二
🔗 阅读原帖
当 Django 结合异步任务(如 Celery 或者 MQ 等),执行长耗时任务,Django 会为该任务的函数第一次调用 ORM 时分配一条数据库连接,而且这个连接在 ORM 调用结束时不会立即释放,当你在同一个任务(长耗时)里其他地方再次调用 ORM 时,就会出现"MySQL server has gone away"的报错(原因是 MySQL 主动断开的)
官方推荐解决方案:
如果在 Django 的请求-响应周期之外的长运行进程中创建了连接,该连接将保持打开状态,直到显式关闭或超时发生。你可以使用 django.db.close_old_connections() 来关闭所有旧的或不可用的连接。
我觉得太 low 了。理论上,只需要设置每次调用 ORM 开始前获取一条连接,调用结束后关闭连接即可解决这个问题。
有没有大佬遇到过这个问题?如何更加优雅的解决?
👤 a663
🏷️ #Python @v2ex_feed
🕒 2025-07-29 15:42:20 周二
🔗 阅读原帖
如何分离屎山中 Union 类型的变量
👤 xuegy
🏷️ #Python @v2ex_feed
🕒 2025-07-31 08:12:38 周四
🔗 阅读原帖
正在处理一座屎山,大概情况是这样的。有一个自定义的class X
,需要改掉的东西注释写的是y=Union[X, str]
,实际情况也是两种类型到处都混在一起根本分不清。后面所有跟X
类有关的方法一点注释没写,甚至都不做类型判断,而是大量的使用getattr(y, 'name', y)
把水搅得更浑(如果y
是字符串,没有name
,返回字符串本身。否则返回y.name
也是一个字符串)。最离谱的是整座屎山还配了一套 30 分钟才能跑完的 pytest 。
现在需要把混乱的y
分成确定类型的y
和y_str
,使用 pydantic 强制定义数据类型来一点点排错。然而改了几百行以后,所有跟X
有关的方法都被迫改出两种版本的。pytest 不再报类型错误了,却开始出现各种离奇的 bug 挂掉。
有什么更强大的工具可以搞定这件事吗?比如同步检测两个版本的代码,看从哪一步开始两边的数据变得不一致了?
👤 xuegy
🏷️ #Python @v2ex_feed
🕒 2025-07-31 08:12:38 周四
🔗 阅读原帖
下面这篇“ Python 3.14 new features”内容好像是假的,,谁这么无聊搞这种东西??
👤 XIVN1987
🏷️ #Python @v2ex_feed
🕒 2025-07-31 10:28:36 周四
🔗 阅读原帖
前几天在知乎上看到这篇文章,,当时完全没考虑文章的真实性,,只是觉得 Python 怎么加这么多奇葩语法,,要完。。
今天稍微搜了下,,发现文章中提到的 PEP 727 、PEP 740 并不是文章中描述的内容。。似乎整篇文章都是胡编乱造的。。
搞不懂谁会写这种东西??难道是 AI 生成的??
[图片 1]
👤 XIVN1987
🏷️ #Python @v2ex_feed
🕒 2025-07-31 10:28:36 周四
🔗 阅读原帖
pycharm 使用 uv 作为环境管理,出现导入划红线。
👤 llsquaer
🏷️ #Python @v2ex_feed
🕒 2025-08-02 16:59:45 周六
🔗 阅读原帖
看图
[图片 1]
logger ,requests 都属于第三方模块。但是 logger 就是红线。最初以为是环境没识别,但是运行都是正常的,这事情很费解啊。有解决办法么?
👤 llsquaer
🏷️ #Python @v2ex_feed
🕒 2025-08-02 16:59:45 周六
🔗 阅读原帖
[ Python ] 批量把代码加入到 head 元素里面。
👤 xkwdm
🏷️ #Python @v2ex_feed
🕒 2025-08-04 14:26:06 周一
🔗 阅读原帖
日常需要把谷歌跟踪代码加入到 head 元素里面,所以借助 AI 写了一个小工具。
1 、把需要加入的内容保存到 GACode.txt 文件中
2 、执行代码,输入目录即可。(只会修改 html 扩展名的文件)
代码import os
import re
import sys
from pathlib import Path
def get_resource_path(relative_path):
"""获取资源文件的绝对路径,支持 PyInstaller 打包"""
try:
# PyInstaller 创建临时文件夹,并将路径存储在_MEIPASS 中
base_path = sys._MEIPASS
except Exception:
base_path = os.path.abspath(".")
return os.path.join(base_path, relative_path)
def check_and_add_google_analytics():
"""
检查所有 HTML 文件是否包含 Google Analytics 代码,如果不存在则添加
"""
# 初始化统计信息
stats = {
'total': 0,
'modified': 0,
'skipped': 0,
'errors': 0
}
# 从 GACode.txt 文件读取 Google Analytics 代码
ga_code_file = get_resource_path('GACode.txt')
try:
with open(ga_code_file, 'r', encoding='utf-8') as f:
ga_code = f.read().strip()
except FileNotFoundError:
print(f"错误:找不到文件 {ga_code_file}")
stats['errors'] = 1
return stats
except Exception as e:
print(f"错误:读取 GA 代码文件时出错: {str(e)}")
stats['errors'] = 1
return stats
if not ga_code:
print("错误:GA 代码文件为空")
stats['errors'] = 1
return stats
# 获取当前目录下所有 HTML 文件
html_files = list(Path('.').glob('*.html'))
stats['total'] = len(html_files)
print(f"找到 {len(html_files)} 个 HTML 文件")
for html_file in html_files:
print(f"\n 处理文件: {html_file}")
try:
# 读取文件内容
with open(html_file, 'r', encoding='utf-8') as f:
content = f.read()
# 检查是否已经包含 Google Analytics 代码
if 'googletagmanager.com/gtag/js' in content:
print(f" ✓ {html_file} 已包含 Google Analytics 代码,跳过")
stats['skipped'] += 1
continue
# 查找</head>标签的位置
head_end_pattern = r'</head>'
match = re.search(head_end_pattern, content, re.IGNORECASE)
if not match:
print(f" ✗ {html_file} 未找到</head>标签,跳过")
stats['errors'] += 1
continue
# 在</head>标签前插入 Google Analytics 代码
head_end_pos = match.start()
new_content = (
content[:head_end_pos] +
' ' + ga_code + '\n' +
content[head_end_pos:]
)
# 写入修改后的内容
with open(html_file, 'w', encoding='utf-8') as f:
f.write(new_content)
print(f" ✓ {html_file} 已成功添加 Google Analytics 代码")
stats['modified'] += 1
except Exception as e:
print(f" ✗ 处理 {html_file} 时出错: {str(e)}")
stats['errors'] += 1
print("\n 处理完成!")
return stats
if __name__ == "__main__":
try:
# 获取用户输入的目录路径
current_dir = input("请输入要处理的目录路径: ").strip()
# 如果用户没有输入,则使用当前目录
if not current_dir:
current_dir = os.getcwd()
print(f"当前工作目录: {current_dir}")
# 切换到指定目录
try:
os.chdir(current_dir)
except FileNotFoundError:
print(f"错误:目录 '{current_dir}' 不存在")
input("\n 按回车键退出...")
exit(1)
except PermissionError:
print(f"错误:没有权限访问目录 '{current_dir}'")
input("\n 按回车键退出...")
exit(1)
# 检查是否在包含 HTML 文件的目录中
html_files = list(Path('.').glob('*.html'))
if not html_files:
print("当前目录下没有找到 HTML 文件,请确保在正确的目录下运行此脚本")
input("\n 按回车键退出...")
exit(1)
# 执行添加 Google Analytics 代码的操作
stats = check_and_add_google_analytics()
# 检查返回值是否有效
if stats is None:
print("\n⚠ 函数执行异常,无法获取统计信息")
stats = {'total': 0, 'modified': 0, 'skipped': 0, 'errors': 1}…
👤 xkwdm
🏷️ #Python @v2ex_feed
🕒 2025-08-04 14:26:06 周一
🔗 阅读原帖
寻找合伙人,加密货币量化交易项目
👤 dennis188
🏷️ #Python @v2ex_feed
🕒 2025-08-05 11:29:57 周二
🔗 阅读原帖
要求,
精通 Python ,或前端页面
熟悉交易
对加密货币感兴趣
可以兼职。初创项目,寻找志同道合的人一起创造。
👤 dennis188
🏷️ #Python @v2ex_feed
🕒 2025-08-05 11:29:57 周二
🔗 阅读原帖
大佬们有用过 agno 和 langgraph 的吗,做类 cursor 的 agent,技术栈二选一哪个好一点
👤 zhengfan2016
🏷️ #Python @v2ex_feed
🕒 2025-08-06 18:25:00 周三
🔗 阅读原帖
如题,选技术栈 ing ,不知道有没有坑
👤 zhengfan2016
🏷️ #Python @v2ex_feed
🕒 2025-08-06 18:25:00 周三
🔗 阅读原帖
这 AI,让他帮我改个算法,好家伙把我关键代码给我误删了!
👤 AlanZ1997
🏷️ #Python @v2ex_feed
🕒 2025-08-06 19:14:05 周三
🔗 阅读原帖
[图片 1]
让他改个算法代码,把我代码给删错了,导致整个工程出现不可控问题
👤 AlanZ1997
🏷️ #Python @v2ex_feed
🕒 2025-08-06 19:14:05 周三
🔗 阅读原帖