You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

安装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的旧版本

解决方案

  1. Python 3环境下直接弃用jieba3k
    官方的jieba包已经完全支持Python 3.x,根本不需要安装jieba3k,这是最彻底的解决方式。

  2. 恢复被覆盖的jieba版本
    如果已经不小心安装了jieba3k,执行以下命令强制重新安装官方jieba即可恢复:

(testenv) test$ pip3 install --force-reinstall jieba
  1. 特殊场景下的隔离方案
    如果你因为历史代码兼容等特殊需求必须同时使用两个包,建议用独立虚拟环境隔离:一个环境装jieba(Python 3),另一个装jieba3k(可以搭配Python 2环境),避免模块冲突。

内容的提问来源于stack exchange,提问作者Henry Henrinson

火山引擎 最新活动