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

Ubuntu系统下Python 3.12环境启动cqlsh报错且无法降级Python至3.11的解决方案咨询

Ubuntu系统下Python 3.12环境启动cqlsh报错且无法降级Python至3.11的解决方案咨询

先理清楚你的核心困扰:因为需要定期本地做Cassandra的增量备份,所以排除了虚拟机和Docker方案;但当前Ubuntu系统装了Python3.12,想降级到3.11却遇到依赖问题,改软链接也没用,启动cqlsh时提示"No appropriate Python interpreter found.",不想重装系统,想找更简便的替代方案。

给你几个不用动全局Python版本的可行思路:

  • 用Python虚拟环境隔离版本
    不用降级系统全局Python,直接给Cassandra单独配个Python3.11的环境:

    1. 先并行安装Python3.11(系统可以同时存在多个Python版本):
      sudo apt install python3.11 python3.11-venv
    2. 在任意目录创建专属虚拟环境:
      python3.11 -m venv ~/cassandra-venv
    3. 激活这个虚拟环境:
      source ~/cassandra-venv/bin/activate
    4. 激活环境后,直接运行Cassandra自带的cqlsh脚本就行,比如:
      cd /apache-cassandra-4.1.5/bin && ./cqlsh
      每次需要用cqlsh时,先激活这个虚拟环境就好,完全不影响系统全局的Python3.12。
  • 直接修改cqlsh的脚本指定Python版本
    Cassandra自带的cqlsh是个Python脚本,你可以直接修改它的运行指定版本:

    1. 找到cqlsh的路径,比如你这里是/apache-cassandra-4.1.5/bin/cqlsh,用编辑器打开它:
      sudo nano /apache-cassandra-4.1.5/bin/cqlsh
    2. 把第一行的#!/usr/bin/env python3改成#!/usr/bin/env python3.11
    3. 保存退出后,直接运行./cqlsh就会自动调用Python3.11了
      注意:如果系统还没装Python3.11,先执行sudo apt install python3.11,如果安装时依赖报错,可以试试sudo apt install python3.11 --fix-missing修复依赖。
  • 用aptitude解决Python3.11的依赖问题
    如果你确实想给系统装Python3.11作为可选版本,遇到依赖问题时可以用aptitude工具,它比apt更灵活:

    1. 先安装aptitude:sudo apt install aptitude
    2. 然后用aptitude安装Python3.11:sudo aptitude install python3.11
      过程中它会给出几个依赖解决的选项,你可以选择保留部分兼容包的方案,不用强制卸载Python3.12。

这些方案都不用重装系统,应该能解决你的cqlsh启动问题,同时也不影响你本地备份Cassandra的需求。

备注:内容来源于stack exchange,提问作者Lookits rswish

火山引擎 最新活动