# 安装MindSpore Hub
- [安装MindSpore Hub](#安装mindspore-hub)
- [确认系统环境信息](#确认系统环境信息)
- [安装方式](#安装方式)
- [pip安装](#pip安装)
- [源码安装](#源码安装)
- [验证是否成功安装](#验证是否成功安装)
[![查看源文件](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source.svg)](https://gitee.com/mindspore/docs/blob/master/docs/hub/docs/source_zh_cn/hub_installation.md)
## 确认系统环境信息
- 硬件平台支持Ascend、GPU和CPU。
- 确认安装[Python](https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz) 3.7.5版本。
- MindSpore Hub与MindSpore的版本需保持一致。
- MindSpore Hub支持使用x86 64位或ARM 64位架构的Linux发行版系统。
- 在联网状态下,安装whl包时会自动下载`setup.py`中的依赖项,其余情况需自行安装。
## 安装方式
可以采用pip安装或者源码安装两种方式。
### pip安装
下载并安装[发布版本列表](https://www.mindspore.cn/versions)中的MindSpore Hub whl包。
```shell
pip install https://ms-release.obs.cn-north-4.myhuaweicloud.com/{version}/Hub/any/mindspore_hub-{version}-py3-none-any.whl --trusted-host ms-release.obs.cn-north-4.myhuaweicloud.com -i https://pypi.tuna.tsinghua.edu.cn/simple
```
> - `{version}`表示MindSpore Hub版本号,例如下载1.3.0版本MindSpore Hub时,`{version}`应写为1.3.0。
### 源码安装
1. 从Gitee下载源码。
```bash
git clone https://gitee.com/mindspore/hub.git
```
2. 编译安装MindSpore Hub。
```bash
cd hub
python setup.py install
```
## 验证是否成功安装
在能联网的环境中执行以下命令,验证安装结果。
```python
import mindspore_hub as mshub
model = mshub.load("mindspore/1.6/lenet_mnist", num_class=10)
```
如果出现下列提示,说明安装成功:
```text
Downloading data from url https://gitee.com/mindspore/hub/raw/master/mshub_res/assets/mindspore/1.6/lenet_mnist.md
Download finished!
File size = 0.00 Mb
Checking /home/ma-user/.mscache/mindspore/1.6/lenet_mnist.md...Passed!
```
## FAQ
**Q: 遇到`SSL: CERTIFICATE_VERIFY_FAILED`怎么办?**
A: 由于你的网络环境,例如你使用代理连接互联网,往往会由于证书配置问题导致python出现ssl verification failed的问题,此时有两种解决方法:
- 配置好SSL证书 **(推荐)**
- 在加载mindspore_hub前增加如下代码进行解决(最快)
```python
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
import mindspore_hub as mshub
model = mshub.load("mindspore/1.6/lenet_mnist", num_classes=10)
```
**Q: 遇到`No module named src.*`怎么办?**
A: 同一进程中使用load接口加载不同的模型,由于每次加载模型需要将模型文件目录插入到环境变量中,经测试发现:Python只会去最开始插入的目录下查找src.*,尽管你将最开始插入的目录删除,Python还是会去这个目录下查找。解决办法:不添加环境变量,将模型目录下的所有文件都复制到当前工作目录下。代码如下:
```python
# mindspore_hub_install_path/load.py
def _copy_all_file_to_target_path(path, target_path):
if not os.path.exists(target_path):
os.makedirs(target_path)
path = os.path.realpath(path)
target_path = os.path.realpath(target_path)
for p in os.listdir(path):
copy_path = os.path.join(path, p)
target_dir = os.path.join(target_path, p)
_delete_if_exist(target_dir)
if os.path.isdir(copy_path):
_copy_all_file_to_target_path(copy_path, target_dir)
else:
shutil.copy(copy_path, target_dir)
def _get_network_from_cache(name, path, *args, **kwargs):
_copy_all_file_to_target_path(path, os.getcwd())
config_path = os.path.join(os.getcwd(), HUB_CONFIG_FILE)
if not os.path.exists(config_path):
raise ValueError('{} not exists.'.format(config_path))
......
```
**注意**:在load后一个模型时可能会将前一个模型的一些文件替换掉,但是模型训练需保证必要模型文件存在,你必须在加载新模型之前完成对前一个模型的训练。