conda环境下‘Textbox‘ object has no attribute ‘style‘问题解决

发布时间:2024年01月03日

1 问题描述

在本地部署chatglm2-6B的时候可能出现,运行web_demo.py,出现如下错误:

(chatglm) [root@localhost ChatGLM2-6B]# python web_demo.py 
Loading checkpoint shards: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:37<00:00,  5.31s/it]
Traceback (most recent call last):
  File "/opt/ChatGLM2-6B/web_demo.py", line 89, in <module>
    user_input = gr.Textbox(show_label=False, placeholder="Input...", lines=10).style(
AttributeError: 'Textbox' object has no attribute 'style'

2 问题分析

查看本地包版本,如下所示:

(chatglm) [root@localhost ChatGLM2-6B]# pip list
Package                   Version
------------------------- ------------
accelerate                0.25.0
aiofiles                  23.2.1
altair                    5.2.0
annotated-types           0.6.0
anyio                     4.2.0
attrs                     23.2.0
blinker                   1.7.0
cachetools                5.3.2
certifi                   2023.11.17
charset-normalizer        3.3.2
click                     8.1.7
colorama                  0.4.6
contourpy                 1.2.0
cpm-kernels               1.0.11
cycler                    0.12.1
exceptiongroup            1.2.0
fastapi                   0.108.0
ffmpeg-python             0.2.0
ffmpy                     0.3.1
filelock                  3.13.1
fonttools                 4.47.0
fsspec                    2023.12.2
gitdb                     4.0.11
GitPython                 3.1.40
gradio                    4.12.0
gradio_client             0.8.0
h11                       0.14.0
httpcore                  1.0.2
httpx                     0.26.0
huggingface-hub           0.20.1
idna                      3.6
importlib-metadata        6.11.0
importlib-resources       6.1.1
Jinja2                    3.1.2
jsonschema                4.20.0
jsonschema-specifications 2023.12.1
kiwisolver                1.4.5
latex2mathml              3.77.0
Markdown                  3.5.1
markdown-it-py            3.0.0
MarkupSafe                2.1.3
matplotlib                3.8.2
mdtex2html                1.2.0
mdurl                     0.1.2
mpmath                    1.3.0
networkx                  3.2.1
numpy                     1.26.2
nvidia-cublas-cu12        12.1.3.1
nvidia-cuda-cupti-cu12    12.1.105
nvidia-cuda-nvrtc-cu12    12.1.105
nvidia-cuda-runtime-cu12  12.1.105
nvidia-cudnn-cu12         8.9.2.26
nvidia-cufft-cu12         11.0.2.54
nvidia-curand-cu12        10.3.2.106
nvidia-cusolver-cu12      11.4.5.107
nvidia-cusparse-cu12      12.1.0.106
nvidia-nccl-cu12          2.18.1
nvidia-nvjitlink-cu12     12.3.101
nvidia-nvtx-cu12          12.1.105
orjson                    3.9.10
packaging                 23.2
pandas                    2.1.4
pillow                    10.2.0
pip                       23.3.2
protobuf                  4.25.1
psutil                    5.9.7
pyarrow                   14.0.2
pydantic                  2.5.3
pydantic_core             2.14.6
pydeck                    0.8.1b0
pydub                     0.25.1
Pygments                  2.17.2
pyparsing                 3.1.1
python-dateutil           2.8.2
python-multipart          0.0.6
pytz                      2023.3.post1
PyYAML                    6.0.1
referencing               0.32.0
regex                     2023.12.25
requests                  2.31.0
rich                      13.7.0
rpds-py                   0.16.2
safetensors               0.4.1
semantic-version          2.10.0
sentencepiece             0.1.99
setuptools                69.0.3
shellingham               1.5.4
six                       1.16.0
smmap                     5.0.1
sniffio                   1.3.0
sse-starlette             1.8.2
starlette                 0.32.0.post1
streamlit                 1.29.0
sympy                     1.12
tenacity                  8.2.3
tokenizers                0.13.3
toml                      0.10.2
tomlkit                   0.12.0
toolz                     0.12.0
torch                     2.1.2
tornado                   6.4
tqdm                      4.66.1
transformers              4.30.2
triton                    2.1.0
typer                     0.9.0
typing_extensions         4.9.0
tzdata                    2023.4
tzlocal                   5.2
urllib3                   2.1.0
uvicorn                   0.25.0
validators                0.22.0
watchdog                  3.0.0
websockets                11.0.3
wheel                     0.42.0
zipp                      3.17.0

错误信息与gradio版本有关,本地版本gradio==4.12.0,需要降低gradio版本

3 问题解决

pip install gradio==3.50.0

再次运行程序,不再报错,问题解决。

??4 conda环境介绍

Conda是一个开源的包管理器和环境管理系统,用于安装、运行和更新包和其依赖项。它是由Anaconda, Inc.(以前称为Continuum Analytics)创建,用于支持Python程序开发,但它也可以用来管理来自其他语言的包。Conda使得包管理和环境隔离变得简单,对于处理多个项目中的依赖关系和版本控制尤其有用。

7fe216bee95143b88dd373480ba452ee.webp

Conda是一个强大的工具,对于管理复杂的Python项目和环境至关重要。它简化了包管理和环境设置,使得Python开发更加容易和高效。通过使用Conda,开发者可以确保他们的项目在不同机器和操作系统上都能以相同的方式运行,大大提高了项目的可移植性和可复现性。

4.1 Conda的核心概念

Conda的核心概念主要包括以下几个方面:

  1. 包管理:Conda作为包管理器,能够安装、更新和卸载软件包。这些包可能包含Python或其他编程语言的库和应用程序。Conda通过包含所有依赖性的方式来解决包之间的依赖关系问题。

  2. 环境管理:Conda允许用户创建隔离的环境,以便在不同的项目之间切换,而不会导致依赖项或版本的冲突。每个环境都有自己的一套独立的安装的软件包。

  3. 跨平台:Conda是跨平台的,可以在Windows、macOS和Linux操作系统上运行。这使得在不同操作系统上保持一致的开发和部署环境成为可能。

  4. 语言无关性:虽然Conda最初是为Python生态系统设计的,但它实际上是语言无关的,可以管理多种编程语言的软件包。

  5. 通道(Channels):Conda软件包可以从所谓的“通道”中获得。这些通道是包存储库,可以是公共的或私有的。Anaconda Cloud提供了许多预建的包,而用户也可以创建自己的通道来托管和分享包。

  6. 依赖和兼容性管理:Conda在安装软件包时会自动处理依赖关系和版本控制,确保所有依赖项都兼容,并且不会发生冲突。

通过这些核心概念,Conda提供了一种高效的方式来管理复杂的数据科学、机器学习和其他类型的开发项目的依赖。

4.2 使用Conda的优势

  • 解决依赖性问题:Conda可以自动解决包之间的依赖关系,简化了安装过程。

  • 环境隔离:创建独立的环境可以避免包之间的版本冲突,使得项目更稳定。

  • 易于使用:Conda的命令行界面简单直观,易于学习和使用。

  • 广泛的包支持:Conda支持Python的许多流行库和应用程序。

  • 社区支持:作为一个流行的工具,Conda拥有一个活跃的社区,用户可以从中找到支持和资源。

4.3 Conda环境的创建和管理

  • 创建新环境:使用conda create命令创建一个新环境,可以指定Python版本和所需的包。

  • 激活环境:使用conda activate命令来激活环境。

  • 安装包:在激活的环境中使用conda install命令来安装新的包。

  • 环境列表:使用conda env list来查看所有可用的Conda环境。

  • 移除环境:使用conda env remove命令来移除不再需要的环境。

4.4 应用场景

  • 数据科学和机器学习:Conda非常适合于数据科学和机器学习项目,这些项目通常需要多个库和框架。

  • 软件开发:软件开发者使用Conda来管理项目依赖,确保一致的开发环境。

  • 教学和学术研究:教师和研究人员使用Conda来创建具有特定库和工具的环境,用于教学和研究。

4.5 常用命令

Conda 是一个开源的包管理器和环境管理器,广泛用于管理Python环境和包。以下是一些常用的 Conda 命令:

  • 安装 Conda 包:

    • conda install [package-name]: 安装指定的包。
  • 创建和管理环境:

    • conda create --name [env-name]: 创建一个新的环境。
    • conda activate [env-name]: 激活指定环境。
    • conda deactivate: 退出当前环境。
    • conda env list: 列出所有可用的环境。
  • 管理包:

    • conda list: 在当前环境中列出所有已安装的包。
    • conda update [package-name]: 更新指定的包。
    • conda remove [package-name]: 移除指定的包。
  • 搜索包:

    • conda search [package-name]: 搜索可用的包版本。
  • 环境导出和导入:

    • conda env export > environment.yml: 导出当前环境的配置到一个YAML文件。
    • conda env create -f environment.yml: 使用YAML文件创建一个新环境。
  • 更新 Conda:

    • conda update conda: 更新 Conda 到最新版本。
  • 查看 Conda 信息:

    • conda info: 显示关于 Conda 的信息。
文章来源:https://blog.csdn.net/lsb2002/article/details/135363115
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。