安装Python包jieba3k导致已安装jieba版本变更问题咨询
解决安装jieba3k导致已安装jieba版本被覆盖的问题
我碰到过不少开发者遇到这个问题,本质原因很明确:jieba3k是jieba针对Python 2.x版本维护的兼容分支包,而在Python 3.x环境中,它和官方的jieba包会因为模块命名冲突(两者都使用jieba作为模块名),导致安装jieba3k后直接覆盖已安装的jieba文件,从而改变版本。
问题复现步骤
- 创建并激活Python 3.6虚拟环境:
$ virtualenv testenv --python=/usr/bin/python3.6 Running virtualenv with interpreter /usr/bin/python3.6 Using base prefix '/usr' New python executable in testenv/bin/python3.6 Also creating executable in testenv/bin/python Installing setuptools, pip, wheel...done. $ source testenv/bin/activate (testenv) $ cd test
- 安装官方jieba包并查看版本:
(testenv) test$ pip3 install jieba Collecting jieba Installing collected packages: jieba Successfully installed jieba-0.42.1 # 示例版本号
>>> import jieba >>> jieba.__version__ '0.42.1'
- 安装jieba3k后再次查看版本:
(testenv) test$ pip3 install jieba3k Collecting jieba3k Installing collected packages: jieba3k Successfully installed jieba3k-0.35.1
>>> import jieba >>> jieba.__version__ '0.35.1' # 版本被替换为jieba3k的旧版本
解决方案
Python 3环境下直接弃用jieba3k:
官方的jieba包已经完全支持Python 3.x,根本不需要安装jieba3k,这是最彻底的解决方式。恢复被覆盖的jieba版本:
如果已经不小心安装了jieba3k,执行以下命令强制重新安装官方jieba即可恢复:
(testenv) test$ pip3 install --force-reinstall jieba
- 特殊场景下的隔离方案:
如果你因为历史代码兼容等特殊需求必须同时使用两个包,建议用独立虚拟环境隔离:一个环境装jieba(Python 3),另一个装jieba3k(可以搭配Python 2环境),避免模块冲突。
内容的提问来源于stack exchange,提问作者Henry Henrinson




