当前位置: 首页 > news >正文

【无标题】安装环境

这里写目录标题

      • 清华镜像加速
    • 安装cuda11.3 +PyTorch 1.10.1
      • https://pytorch.org/get-started/previous-versions/
      • [如果没有可以点Previous pyTorch Versions,这里面有更多的更早的版本](https://pytorch.org/get-started/locally/)
    • 复制非空文件夹cp: -r not specified; omitting directory XXX
    • MultiplexedOCR
      • cannot import name ‘_download_url_to_file‘ from ‘torch.utils.model_zoo‘
      • ImportError: cannot import name 'TopologicalError' from 'shapely.geos'
      • ImportError: /data1/xyj/MultiplexedOCR-main/multiplexer/_C.cpython-38-x86_64-linux-gnu.so: undefined symbol: _ZN3c106SymInt19promote_to_negativeEv
      • TypeError: join() argument must be str, bytes, or os.PathLike object, not ‘NoneType‘
    • masktextspotter
      • apex安装
      • 安装maskrcnn-benchmark(maskrcnn)
      • maskrcnn-benchmark疯狂报错
        • ImportError: cannot import name ‘_C’ from ‘maskrcnn_benchmark’
    • Test_spotting_transformer
      • /data1/xyj/anaconda3/envs/TESTR/lib/python3.8/site-packages/detectron2/utils/visualizer.py:308: UserWarning: Glyph 21475 (\N{CJK UNIFIED IDEOGRAPH-53E3}) missing from current font.
    • openmmlab
      • error: metadata-generation-failed
    • ERROR: Failed building wheel for mmpycocotools
    • ERROR: Could not build wheels for mmpycocotools, which is required to install pyproject.toml-based projects
    • ImportError: /usr/local/anaconda3/envs/py38/lib/python3.8/site-packages/mmcv/_ext.cpython-38-x86_64-
    • AssertionError: MMCV==2.1.0 is used but incompatible. Please install mmcv>=1.2.4, <=1.4.0.
    • 安装mmcv
    • mmcv报错:ModuleNotFoundError: No module named ‘mmcv._ext‘
    • OSError: checkpoints/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth is not a checkpoint file
      • RuntimeError: CUDA error: no kernel image is available for execution on the device
    • ==**安装torch cuda成功后,用以下代码测试cuda是否可用:**==

清华镜像加速

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simplepip install torch==2.0.0+cu118 torchvision==0.15.1+cu118 torchaudio==2.0.1+cu118 -f https://download.pytorch.org/whl/torch_stable.html

安装cuda11.3 +PyTorch 1.10.1

https://pytorch.org/get-started/previous-versions/

在这里插入图片描述
conda install pytorch1.10.1 torchvision0.11.2 torchaudio==0.10.1 cudatoolkit=11.3 -c pytorch -c conda-forge

不可以,一直在解析环境

如果没有可以点Previous pyTorch Versions,这里面有更多的更早的版本

在这里插入图片描述

pip3 install torch==1.10.0+cu113 torchvision==0.11.1+cu113 torchaudio==0.10.0+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html

通过以上指令会把Pytorch1.10以及需要的CUDA11.3全部安装好(不需要单独安装CUDA)

复制非空文件夹cp: -r not specified; omitting directory XXX

linux复制操作 cp: -r not specified; omitting directory XXX 错误
记得加上 -r

MultiplexedOCR

cannot import name ‘_download_url_to_file‘ from ‘torch.utils.model_zoo‘

ImportError: cannot import name ‘HASH_REGEX’ from ‘torch.utils.model_zoo’

try:from torch.hub import HASH_REGEX, _download_url_to_file, urlparse
except ImportError:from torch.hub import download_url_to_filefrom torch.hub import urlparsefrom torch.hub import  HASH_REGEX#from torch.utils.model_zoo import _download_url_to_file#from torch.utils.model_zoo import urlparse#from torch.utils.model_zoo import HASH_REGEX

ImportError: cannot import name ‘TopologicalError’ from ‘shapely.geos’

Revert Shapely to 1.8.5 and Numpy to 1.23.4
Should work.

ImportError: /data1/xyj/MultiplexedOCR-main/multiplexer/_C.cpython-38-x86_64-linux-gnu.so: undefined symbol: _ZN3c106SymInt19promote_to_negativeEv

I’ve faced of this issue recently and creating a new environment with parameters below solved my problem.

PS : I assume that you’re using torch with CUDA, if you’re not you can install non-GPU versions.

torch version : 1.9 + cu111
torchvision : 0.10.0 + cu111
torchaudio : 0.9.0

You can download these from ;

pip install torch==1.9.0+cu111 torchvision==0.10.0+cu111 torchaudio==0.9.0 -f https://download.pytorch.org/whl/torch_stable.html

好像不管什么版本 -f 后面接的都是一个网址

TypeError: join() argument must be str, bytes, or os.PathLike object, not ‘NoneType‘

masktextspotter

conda create -n masktextspotter python=3.8
conda activate maskrcnn_benchmark
#安装各种依赖包
conda install ipython
pip install ninja yacs cython matplotlib tqdm opencv-python# install PyTorch 反正后面torch报错,我换了个版本conda install pytorch torchvision cudatoolkit=10.0 -c pytorch
# install pycocotoolscd $INSTALL_DIRgit clone https://github.com/cocodataset/cocoapi.gitcd cocoapi/PythonAPIpython setup.py build_ext install# install apexcd $INSTALL_DIRgit clone https://github.com/NVIDIA/apex.gitcd apexpython setup.py install --cuda_ext --cpp_ext# clone repocd $INSTALL_DIRgit clone https://github.com/MhLiao/MaskTextSpotterV3.gitcd MaskTextSpotterV3# buildpython setup.py build develop

apex安装

此句报错,

python setup.py install --cuda_ext --cpp_ext

或许换成这句有用pip install -v --no-cache-dir ./,待会试试

注意apex和下面的maskrcnn-benchmark都不可以直接pip

安装maskrcnn-benchmark(maskrcnn)

一堆报错,报错找不到maskrcnn-benchmark
但是清楚地看到项目同级文件夹下有maskrcnn-benchmark这个包
我甚至很愚蠢地

import torch
print(torch.__file__) 

查看包的路径,想把maskrcnn-benchmark这个文件夹复制到搜寻的路径(安装的包就是一个文件夹嘛)TT,查到是 anaconda3/envs/masktextspotter/lib/python3.8/site-packages,放到这个路径下,好像没再报错了,但可能这个文件夹就没安装成功,是错的
python import 搜索包路径的机制,以及添加自定义python包的方法

cd ../
git clone https://github.com/facebookresearch/maskrcnn-benchmark.git
cd maskrcnn-benchmark
#安装相应的包
pip3 install -r requirements.txt

maskrcnn-benchmark疯狂报错

ImportError: cannot import name ‘_C’ from ‘maskrcnn_benchmark’

修改处:

nms.py

from maskrcnn_benchmark import _C
修改为:
from ._utils import _C

没用,继续报错TT TT

有时间再看看把

maskrcnn安装及遇到的各种问题
搭建maskrcnn-benchmark的环境遇到问题

Test_spotting_transformer

训练语料库只含少量中文数据,论文中写到将其忽略

python demo/demo.py --config-file configs/TESTR/TotalText/TESTR_R_50_Polygon.yaml --input work_dirs/ocr_en_422k --output output/en --opts MODEL.WEIGHTS work_dirs/totaltext_testr_R_50_polygon.pth MODEL.TRANSFORMER.INFERENCE_TH_TEST 0.3 
python demo/demo.py --config-file configs/TESTR/TotalText/TESTR_R_50_Polygon.yaml --input work_dirs/ocr_en_422k --output output/en --opts MODEL.WEIGHTS work_dirs/totaltext_testr_R_50_polygon.pth MODEL.TRANSFORMER.INFERENCE_TH_TEST 0.3 

检测中文时出现以下错误

/data1/xyj/anaconda3/envs/TESTR/lib/python3.8/site-packages/detectron2/utils/visualizer.py:308: UserWarning: Glyph 21475 (\N{CJK UNIFIED IDEOGRAPH-53E3}) missing from current font.

openmmlab

在这里插入图片描述
从网上上找到的资料看,可能是由于最新版本的pytorch (1.11以上)去除对这个头文件的支持,所以我们建议使用pytorch 1.8版本会比较稳定

pip install torch==1.8.1+cu102 torchvision==0.9.1+cu102 torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html

原来是conda install pytorch==2.0.0 torchvision==0.15.0 torchaudio==2.0.0 pytorch-cuda=11.8 -c pytorch -c nvidia 这个版本

error: metadata-generation-failed

error: metadata-generation-failed

需要执行命令 pip install setuptools==50.3.2

问题解决

ERROR: Failed building wheel for mmpycocotools

安装cython=0.29.33版本就可以解决

pip3 install cython==0.29.33 -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
pip install mmpycocotools

ERROR: Could not build wheels for mmpycocotools, which is required to install pyproject.toml-based projects

ImportError: /usr/local/anaconda3/envs/py38/lib/python3.8/site-packages/mmcv/_ext.cpython-38-x86_64-

mmcv官方:https://mmcv.readthedocs.io/en/latest/get_started/installation.html

这些问题归根到底还是mmcv-full和自己安装的pytorch版本不匹配的原因导致的,所以在安装mmcv-full时,尽量不要偷懒,不要直接pip install mmcv-full,先检查好自己的nvidia驱动以及CUDA版本,然后去mmcv的github或者官网去寻找指定的命令去下载,找到匹配的版本下载安装后,就可以正常运行了。

原文链接:https://blog.csdn.net/weixin_42130300/article/details/121616567

在这里插入图片描述
官方链接

AssertionError: MMCV==2.1.0 is used but incompatible. Please install mmcv>=1.2.4, <=1.4.0.

安装mmcv

MMCV是OpenMMLab系列代码的基础库。Linux环境安装的whl包又打包好的,相对较容易,可以直接下载安装
特别注意需要和Pytorch 和 CUDA版本对应,才能确保安装,安装过程出现ERROR的红色字样均需要卸载重新安装
当前机器版本为Torch 1.8.0 CUDA 10.2 ,安装相应的版本
#安装mmcv
#使用简单功能使用下命令
#!pip install mmcv -f https://download.openmmlab.com/mmcv/dist/cu102/torch1.8.1/index.html
#安装完全版本
#!pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu102/torch1.8.1/index.html

#安装只需要修改cuda版本和torch版本即可,当前安装的是mmcv-full
————————————————
版权声明:本文为CSDN博主「瑾怀轩」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ckq707718837/article/details/121252909

pip uninstall -y mmdet mmcv
conda install -y cython==0.28.5
pip install mmcv==0.6.2 terminaltables Pillow==6.2.2export FORCE_CUDA="1"pip install "git+https://github.com/open-mmlab/cocoapi.git#subdirectory=pycocotools"
pip install "git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI"rm -rf build
pip install -r requirements/build.txt
python setup.py developpip install mmcv==1.4.0
# pip install mmcv-full==1.4.0 -f https://download.openmmlab.com/mmcv/dist/{cu版本}/{torch版本}/index.html
pip install mmcv-full==1.4.0 -f https://download.openmmlab.com/mmcv/dist/cu102/torch1.8.1/index.html

mmcv报错:ModuleNotFoundError: No module named ‘mmcv._ext‘

当前的仓库代码是基于mmcv-full==1.3.4和mmdet=2.11.0,新的mmdet一些接口的调用位置会发生变化

mmdet=2.11.0
pip install mmcv-full==1.4.0 -f https://download.openmmlab.com/mmcv/dist/cu102/torch1.8.1/index.html
解决
解决方法:

mmcv正常安装

先卸载mmcv-full,然后重新安装一下

OSError: checkpoints/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth is not a checkpoint file

config文件对应错了

RuntimeError: CUDA error: no kernel image is available for execution on the device

换了个环境

conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cudatoolkit=11.1 -c pytorch -c conda-forge

哭死

安装torch cuda成功后,用以下代码测试cuda是否可用:

python -c 'import torch;print(torch.__version__)'

查看版本

 1.8.1+cu102
import torch
torch.cuda.is_available()
# 返回True 接着用下列代码进一步测试
torch.zeros(1).cuda()

在这里插入图片描述

相关文章:

【无标题】安装环境

这里写目录标题 清华镜像加速 安装cuda11.3 PyTorch 1.10.1https://pytorch.org/get-started/previous-versions/[如果没有可以点Previous pyTorch Versions&#xff0c;这里面有更多的更早的版本](https://pytorch.org/get-started/locally/) 复制非空文件夹cp: -r not specif…...

一. 初识数据结构和算法

数据结构与算法是一个达到高级程序员的敲门砖。当你脱离了语言的应用层面&#xff0c;去思考他的设计层面时&#xff0c;你就依旧已经开始初识数据结构与算法了 数据结构 什么是数据结构 对于数据结构的定义官方并没有统一的解释&#xff0c;在各个百科以及算法的书中&#xf…...

qt 使用百度在线地图 方法1

在使用Qt和百度在线地图时&#xff0c;你需要从百度地图开放平台获取API密钥&#xff0c;并使用该密钥在Qt应用程序中集成百度地图。以下是一个简单的示例&#xff0c;演示了如何在Qt中使用百度在线地图&#xff1a; 1&#xff0c;首先&#xff0c;从百度地图开放平台获取API密…...

轻快小miniconda3在linux下的安装配置-centos9stream-Miniconda3 Linux 64-bit

miniconda与anaconda的区别&#xff1a; Miniconda 和 Anaconda 是用于管理环境和安装软件包的 Python 发行版。它们之间的主要区别在于以下几点&#xff1a; 1. 安装内容和大小&#xff1a; Anaconda&#xff1a; Anaconda 是一个完整的 Python 数据科学平台&#xff0c;包含…...

C语言——字符函数和字符串函数(一)

&#x1f4dd;前言&#xff1a; 这篇文章对我最近学习的有关字符串的函数做一个总结和整理&#xff0c;主要讲解字符函数和字符串函数&#xff08;strlen&#xff0c;strcpy和strncpy&#xff0c;strcat和strncat&#xff09;的使用方法&#xff0c;使用场景和一些注意事项&…...

15.Java程序设计-基于SSM框架的微信小程序校园求职系统的设计与实现

摘要&#xff1a; 本研究旨在设计并实现一款基于SSM框架的微信小程序校园求职系统&#xff0c;以提升校园求职流程的效率和便捷性。通过整合微信小程序平台和SSM框架的优势&#xff0c;本系统涵盖了用户管理、职位发布与搜索、简历管理、消息通知等多个功能模块&#xff0c;为…...

蓝桥杯航班时间

蓝桥杯其他真题点这里&#x1f448; //飞行时间 - 时差 已过去的时间1 //飞行时间 时差 已过去的时间2 //两个式子相加会发现 飞行时间 两段时间差的和 >> 1import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;public cl…...

openEuler学习05-kernel升级

周末没事&#xff0c;尝试下openEuler的kernel升级 [rootlocalhost ~]# more /etc/os-release NAME"openEuler" VERSION"20.03 (LTS-SP3)" ID"openEuler" VERSION_ID"20.03" PRETTY_NAME"openEuler 20.03 (LTS-SP3)" ANSI_…...

Linux-centos上如何配置管理NFS服务器?

Linux/centos上如何配置管理NFS服务器&#xff1f; 1 NFS基础了解 NFS&#xff08;Network File System&#xff09;即文件操作系统&#xff1b;NFS允许网络中不同计算机相互之间共享资源。 1.1 NFS概述 1980年由SUN发展出来的在UNIX&Linux系统间实现文件共享的一种方法…...

自然语言处理第2天:自然语言处理词语编码

​ ☁️主页 Nowl &#x1f525;专栏 《自然语言处理》 &#x1f4d1;君子坐而论道&#xff0c;少年起而行之 ​​ 文章目录 一、自然语言处理介绍二、常见的词编码方式1.one-hot介绍缺点 2.词嵌入介绍说明 三、代码演示四、结语 一、自然语言处理介绍 自然语言处理&#xf…...

ES6中的Promise

Promise 是一种异步编程解决方案&#xff0c;Promise是一个容器&#xff0c;保存着将来才会执行的代码&#xff1b;从语法角度来说Promise是一个对象&#xff0c;可以用来获取异步操作的消息。异步操作&#xff0c;同步解决&#xff0c;避免了层层嵌套的回调函数&#xff0c;可…...

载入了名字空间‘htmltools’ 0.5.6,但需要的是>= 0.5.7解决方案

解决方案&#xff1a;删除之前的旧版本安装包&#xff0c;安装新的包 1.卸载之前的安装包 2.关闭R&#xff0c;重新打开 3. # install.packages("htmltools") library(htmltools)...

Cisco 思科路由交换网络设备 安全基线 安全加固操作

目录 账号管理、认证授权 本机认证和授权ELK-Cisco-01-01-01 设置特权口令 ELK-Cisco-01-02-01 ELK-Cisco-01-02-02 ​​​​​​​登录要求 ELK-Cisco-01-03-01 ​​​​​​​ELK-Cisco-01-03-02 ELK-Cisco-01-03-03 日志配置 ELK-Cisco-02-01-01 通信协议 ELK-Cisco-…...

WPF仿网易云搭建笔记(0):项目搭建

文章目录 前言项目地址项目Nuget包搭建项目初始化项目架构App.xaml引入MateralDesign资源包 项目初步分析将标题栏去掉DockPanel初步布局 资源字典举例 结尾 前言 最近在找工作&#xff0c;发现没有任何的WPF可以拿的出手的工作经验&#xff0c;打算仿照网易云搭建一个WPF版本…...

Python爬虫利器:BeautifulSoup库详解

BeautifulSoup是Python中最流行的HTML解析库之一&#xff0c;它可以方便地从HTML文档中提取数据&#xff0c;并且支持多种解析器&#xff0c;可以适应不同的HTML文档格式。本文将介绍BeautifulSoup库的作用、用途和基本用法&#xff0c;帮助读者了解如何使用BeautifulSoup进行H…...

【链表Linked List】力扣-117 填充每个节点的下一个右侧节点指针II

目录 问题描述 解题过程 官方题解 问题描述 给定一个二叉树&#xff1a; struct Node {int val;Node *left;Node *right;Node *next; } 填充它的每个 next 指针&#xff0c;让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点&#xff0c;则将 next 指针设置为 N…...

安卓adb【备忘录】

adb常用命令 第三方包 pm list package -3查看所有包【外部直接进入】 adb shell pm list package退出 exit安装 adb install [路径]卸载 adb uninstall [包名]下载手机中的文件到电脑 adb pull /etc/hosts D:\tmp\电脑上传文件至手机【需要root】 adb push D:\tmp\hos…...

Linux笔记之删除指定目录下除最新修改的以 .pack 为扩展名的文件之外的所有文件

code review! 文章目录 1.Linux笔记之删除指定目录下除最新修改的以 .pack 为扩展名的文件之外的所有文件2.将指定目录下除最新修改的以 .pack 为扩展名的文件之外的所有文件移动到另一个目录3.xargs&#xff1a;用于从标准输入中读取数据&#xff0c;并将其作为参数传递给指定…...

什么是呼叫中心的语音通道?呼叫中心语音线路有几种?

什么是呼叫中心的语音通道&#xff1f; 呼叫中心的语音通道是指在呼叫中心中使用的语音信号传输通道&#xff0c;它是呼叫中心中至关重要的一部分&#xff0c;负责将客户的语音信息传递给客服代表&#xff0c;以及将客服代表的语音信息传递给客户。在呼叫中心的运营中&#xf…...

3D点云:平面模型上提取凸(凹)多边形方法

目录 一、实现原理 二、实现代码 三、运行结果 一、实现原理 首先要在点云中提取出潜在平面,对原始点云数据进行滤波,根据提取出的平面模型系数从滤波后的点云进行投影,然后根据投影后的点云计算其对应的二维凹(凸)多边形。 二、实现代码 #in...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1

每日一言 生活的美好&#xff0c;总是藏在那些你咬牙坚持的日子里。 硬件&#xff1a;OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写&#xff0c;"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

什么是EULA和DPA

文章目录 EULA&#xff08;End User License Agreement&#xff09;DPA&#xff08;Data Protection Agreement&#xff09;一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA&#xff08;End User License Agreement&#xff09; 定义&#xff1a; EULA即…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目&#xff0c;所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

【Oracle】分区表

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

用机器学习破解新能源领域的“弃风”难题

音乐发烧友深有体会&#xff0c;玩音乐的本质就是玩电网。火电声音偏暖&#xff0c;水电偏冷&#xff0c;风电偏空旷。至于太阳能发的电&#xff0c;则略显朦胧和单薄。 不知你是否有感觉&#xff0c;近两年家里的音响声音越来越冷&#xff0c;听起来越来越单薄&#xff1f; —…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行

项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战&#xff0c;克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)

前言&#xff1a; 双亲委派机制对于面试这块来说非常重要&#xff0c;在实际开发中也是经常遇见需要打破双亲委派的需求&#xff0c;今天我们一起来探索一下什么是双亲委派机制&#xff0c;在此之前我们先介绍一下类的加载器。 目录 ​编辑 前言&#xff1a; 类加载器 1. …...