首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PyAudio.write SystemError:必须为“#”格式定义PY_SSIZE_T_CLEAN宏

PyAudio.write SystemError:必须为“#”格式定义PY_SSIZE_T_CLEAN宏
EN

Stack Overflow用户
提问于 2021-12-14 07:03:03
回答 3查看 12.5K关注 0票数 17

当我试图在python-3.10.1 virtualenv(用python3.9.0 venv创建并升级)中播放PyAudio-0.2.11的wave文件时,我收到了一个异常,没有播放任何内容,其他的都很好。

代码语言:javascript
运行
复制
Exception in thread WavPlayer:rsrc/sound.wav:
Traceback (most recent call last):
  File "/usr/lib/python3.10/threading.py", line 1009, in _bootstrap_inner
    self.run()
  File "/Code/py/tetris/tetris.py", line 39, in run
    self.play()
  File "/Code/py/tetris/tetris.py", line 35, in play
    self.stream.write(data)
  File "/Code/py/tetris/.venv/lib/python3.10/site-packages/pyaudio.py", line 584, in write
    pa.write_stream(self._stream, frames, num_frames,
SystemError: PY_SSIZE_T_CLEAN macro must be defined for '#' formats

我不知道'#' format代表什么,我确信我的代码与code无关,但是它在python-3.9.x下运行良好,这是PyAudio库本身的问题吗?我该怎么解决呢?

EN

回答 3

Stack Overflow用户

发布于 2021-12-15 05:01:52

不幸的是,Python3.10(请参阅bpo-40943佩普-0353)中引入了一个突破性的更改,因此PyAudio需要更新。

我已经向上游提交了一个修复程序,但由于该项目自2017年以来一直没有更新,我不太确定它将被审查的速度有多快。

同时,您可以自由地从源代码构建我的叉子并使用:)

票数 17
EN

Stack Overflow用户

发布于 2022-09-12 15:08:10

去死吧。

如前所述,从Python3.10开始,一些(向后兼容的)功能是故意禁用的。这意味着一些扩展模块将不再工作OOTB。

有关更多细节,请查看未定义清洁

PyAudio (v0.2.11)就是这样一个模块。

v0.2.12 (同时发布)中修复了一些问题。

Python 3.__11 _.whl_s没有在[PyPI]:PyAudio 0.2.12 -下载文件上发布。

我在[GitHub]:CristiFati/预构建-二进制-(主)预构建-二进制文件/PyAudio/v0.2.12建造并放置了它们。

还将(原始的) PyAudio回购分叉到:[GitHub]:CristiFati/py音频- PyAudio

在另一个包上也有类似的问题:[SO]:不能使用pip安装pyo (@CristiFati的回答)

票数 1
EN

Stack Overflow用户

发布于 2022-04-06 12:27:44

我也犯过这个错误。试着安装各种版本的pymongo直到解决。3.12版本是为我做的

pip install --upgrade pymongo=3.12

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70344884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档