pypinyin的版本过高会导致 ImportError: cannot import name '_replace_tone2_style_dict_to_default' from 'pypinyin.utils'
1482345547 opened this issue · comments
运行环境
- 操作系统(Linux/macOS/Windows):
- Python 版本:
- pypinyin 版本:
问题描述
问题复现步骤
Author: mozillazg mozillazg101@gmail.com
Author: mozillazg mozillazg101@gmail.com
Date: Sun Jan 23 16:41:25 2022 +0800
修复韵母相关拼音风格在 strict=True 时未按预期只返回拼音标准中定义过的韵母
Fixes #266
diff --git a/pypinyin/utils.py b/pypinyin/utils.py
index 09f5750..e7e3612 100644
--- a/pypinyin/utils.py
+++ b/pypinyin/utils.py
@@ -2,29 +2,27 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
-import re
-
-from pypinyin import phonetic_symbol
-from pypinyin.constants import RE_TONE2
# 用于向后兼容,TODO: 废弃
from pypinyin.seg.simpleseg import simple_seg # noqa
-def _replace_tone2_style_dict_to_default(string):
- regex = re.compile(RE_TONE2.pattern.replace('$', ''))
- d = phonetic_symbol.phonetic_symbol_reverse
- string = string.replace('ü', 'v').replace('5', '').replace('0', '')
-
- def _replace(m):
- s = m.group(0)
- return d.get(s) or s
-
- return regex.sub(_replace, string)
-
-
可以改用 https://pypinyin.readthedocs.io/zh_CN/master/contrib.html#pypinyin.contrib.tone_convert.to_tone 这个函数实现同样的功能。
BTW,不建议使用文档中未公开的函数或方法,迭代过程中不保证这些未公开函数或方法的兼容性(可能会被删除或者功能发生变化)
这个问题是在引用另一个包 “phkit” 出现的。
from phkit.chinese import __doc__ as doc_chinese
File "/home/gho/anaconda3/lib/python3.9/site-packages/phkit/chinese/__init__.py", line 37, in <module>
from .pinyin import text2pinyin, split_pinyin, change_diao
File "/home/gho/anaconda3/lib/python3.9/site-packages/phkit/chinese/pinyin.py", line 11, in <module>
from ..pinyinkit import text2pinyin, split_pinyin, change_diao
File "/home/gho/anaconda3/lib/python3.9/site-packages/phkit/pinyinkit/__init__.py", line 6, in <module>
from .core import lazy_pinyin, pinyin, slug, Style, initialize
File "/home/gho/anaconda3/lib/python3.9/site-packages/phkit/pinyinkit/core.py", line 20, in <module>
from pypinyin.utils import _replace_tone2_style_dict_to_default
ImportError: cannot import name '_replace_tone2_style_dict_to_default' from 'pypinyin.utils' (/home/gho/anaconda3/lib/python3.9/site-packages/pypinyin/utils.py)