卸载原python并安装新的python,安装各种库

## 安装依赖
RUN apt-get update && apt-get install -y \
    software-properties-common\
    wget \
    curl \
    gnupg2 \
    lsb-release \
    ca-certificates \
    software-properties-common 

RUN add-apt-repository -y ppa:deadsnakes/ppa && apt-get update

## 卸载原python及其依赖
RUN if [ -x "$(which python3.10)" ]; then \
        echo "Removing Python 3.10 binaries..."; \
        rm -rf $(which python3.10); \
    fi && \
    echo "Removing Python soft links..." && \
    if [ -x "$(which python3)" ]; then rm -f $(which python3); fi && \
    if [ -x "$(which pip)" ]; then rm -f $(which pip); fi && \
    if [ -x "$(which pip3)" ]; then rm -f $(which pip3); fi

RUN echo "Cleaning up Python files..." && \
    rm -rf /usr/local/lib/python3.10 \
           /usr/local/include/python3.10 \
           /usr/local/bin/python3.10* \
           /usr/local/bin/pip3.10* \
           ~/.local/lib/python3.10 \
           /usr/local/bin/python3 \
           /usr/local/bin/pip \
           /usr/local/bin/pip3
## 安装新python及其依赖
RUN echo "Install python..." && \
    apt-get install -y python3.10 python3.10-distutils python3.10-venv && \
    ln -sf /usr/bin/python3.10 /usr/local/bin/python3 && \
    curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py 

RUN python3 get-pip.py && rm -rf get-pip.py && \
    python3.10 -m pip install --upgrade jupyter


## 支持jupyter也许需要运行:

pip install platformdirs tornado prometheus_client jinja2 python-dateutil jsonschema pyyaml anyio httpx

## ModuleNotFoundError: No module named 'rpds.rpds' 参考:https://stackoverflow.com/questions/78348119/modulenotfounderror-no-module-named-rpds-rpds

pip uninstall rpds && pip uninstall rpds-py
pip install rpds && pip install rpds-py==0.18.1 


# 安装sqlite3==3.35.0

## 卸载原sqlite3
apt-get remove sqlite3

## 源码编译
### 下载源码并解压

wget https://www.sqlite.org/2021/sqlite-autoconf-3350000.tar.gz && tar -xzvf sqlite-autoconf-3350000.tar.gz

### 编译安装
cd sqlite-autoconf-3350000 && ./configure && make && make install

## 查看安装版本
sqlite3 --version

## 查看与python的版本是否一致

import sqlite3
print(sqlite3.sqlite_version)

### 不一致的3种解决方案
#### 解决方案1,环境变量有效:
find /usr -name "libsqlite3.so*"
'''
/usr/local/lib/libsqlite3.so.0.8.6
/usr/local/lib/libsqlite3.so.0
/usr/local/lib/libsqlite3.so

'''
export LD_LIBRARY_PATH=/usr/local/lib:$/usr/local/lib/libsqlite3.so
vi ~/.bashrc
source ~/.bashrc

#### 解决方案2,重新编译python暂未尝试:
# 安装SQLite的开发库
sudo apt-get install libsqlite3-dev
# 使用正确的 SQLite 版本重新编译 Python
wget https://www.python.org/ftp/python/3.x.x/Python-3.x.x.tgz
tar -xvzf Python-3.x.x.tgz
cd Python-3.x.x
./configure --enable-optimizations
make && make install

#### 解决方案3,利用二进制pysqlite3替代:
pip install pysqlite3
import pysqlite3 as sqlite3
print(sqlite3.sqlite_version)


# 安装 open-webui 注意仅支持python3.11
pip install open-webui

## ImportError: cannot import name 'cygrpc' from 'grpc._cython' (/usr/local/corex/lib64/python3/dist-packages/grpc/_cython/__init__.py)
pip install --upgrade grpcio

##  ModuleNotFoundError: No module named 'regex._regex'
pip install regex==2023.12.25

## ImportError: cannot import name '_tiktoken' from partially initialized module 'tiktoken' (most likely due to a circular import) 
pip install --upgrade tiktoken

## ModuleNotFoundError: No module named '_cffi_backend'
apt-get update && apt-get install libffi-dev
pip uninstall cffi
pip install cffi  ##cffi==1.17.1

# 启动open-webui
open-webui serve

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值