管理第三方库

更新时间:
复制 MD 格式

DSW实例中,您可以通过Terminal安装、查看、卸载、更新Python第三方库。变更会保存到实例的系统盘,实例停止后重启仍然可用;但新建实例不会继承这些变更,如需固化到镜像请使用保存镜像功能。

安装第三方库

DSW提供多种官方镜像,涵盖PyTorch、TensorFlow、ModelScope等主流框架,预装Python 3.10+和CUDA 12.4+。安装第三方库时,直接使用pip install即可安装到当前Python环境。命令格式如下。

pip install <yourLibraryName>

<yourLibraryName>替换为待安装的第三方库名称。例如,使用pip install bottle命令安装bottle库。

如果您在Jupyter NotebookCell中执行安装命令,请在命令前加上百分号%,例如:%pip install bottle

重要

如果成功安装了三方包但在Notebook中找不到,请尝试重新加载Kernel。

说明

安装 TensorFlow、PyTorch 等大型框架时,pip 解压 wheel 包会占用大量内存。如果安装过程中进程被系统 Killed,通常是因为实例内存不足。建议至少 16 GiB 内存,安装带 CUDA 的大型框架时建议 32 GiB 以上;或直接在创建实例时选择已预装对应框架的 PAI 官方镜像,避免手动安装。

查看第三方库

使用以下命令查看已安装的第三方库。

pip list

卸载第三方库

使用以下命令卸载已安装的第三方库。

pip uninstall <yourLibraryName>

<yourLibraryName>替换为已安装的第三方库名称。

说明

请谨慎卸载第三方库,只卸载您自行安装的包,避免破坏系统预装环境。

更新第三方库

使用以下命令更新已安装的第三方库。

# 升级到最新版本
pip install --upgrade numpy

# 安装指定版本
pip install numpy==<versionNumber>

<versionNumber>替换为目标numpy版本号,将numpy替换为您要更新的库名称。

查看或更改pip

执行如下命令查看pip配置文件:

pip config list

返回结果中global.index-url参数的值即为全局pip源地址。global.install.前缀分别对应配置文件中的[global][install]段落。返回示例如下:

global.index-url='https://mirrors.aliyun.com/pypi/simple/'
global.trusted-host='mirrors.aliyun.com'
install.trusted-host='mirrors.aliyun.com'

安装第三方库时临时设置pip源:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ <yourLibraryName>
# 如果出现SSL验证失败的错误,可加上--trusted-host参数跳过HTTPS证书校验(注意:这会降低安全性,仅在可信网络中使用),示例如下:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn <yourLibraryName>

更改全局pip源。pip会按优先级读取多个配置文件(/etc/pip.conf~/.pip/pip.conf~/.config/pip/pip.conf等)。建议先执行pip config list -v查看当前实际生效的配置文件路径,再编辑对应文件。例如编辑用户级配置文件:

vim ~/.config/pip/pip.conf

以修改为清华pip源为例,修改index-urltrusted-host参数,保存并退出。修改后的pip.conf如下:

[global]
trusted-host=pypi.tuna.tsinghua.edu.cn
index-url = https://pypi.tuna.tsinghua.edu.cn/simple/

[install]
trusted-host=pypi.tuna.tsinghua.edu.cn

常见问题

Q:DSW实例关机(停止)后,我用pip安装的包和写的代码会丢失吗?

如果使用了云盘作为系统盘则不会丢失。 实例的磁盘数据(包括/mnt/workspace/root下的环境)都会被保留。下次启动实例时,所有环境和文件都还在。只有删除实例才会彻底清空所有数据。

Q:为什么安装的第三方包没有生效?

通过pip命令安装第三方包后,使用import命令导入时,如果找不到该包,先尝试重启服务或Kernel。如果依然报错,请确认当前使用的Python环境是否正确。可通过which python查看当前Python路径,确保pipNotebook使用的是同一个Python解释器。安装命令如下:

pip install xxx

其中xxx需要替换为待安装的第三方包名称。注意不要使用--user参数,DSW大部分官方镜像以root运行,--user会安装到/root/.local/目录,可能与系统site-packages冲突,反而导致Notebook找不到包。

Q:在DSW里用 pip install 安装一个包失败了,报依赖冲突或版本错误,该怎么办?

通常由环境不兼容导致。按以下顺序排查:

  1. 首选方案:更换镜像。 停止当前实例,新建一个DSW实例,选择一个不同的官方镜像。例如,如果当前PyTorch 2.8镜像不行,可以尝试PyTorch 2.13的镜像,或者尝试modelscope系列镜像,该系列镜像通常有更好的兼容性。

  2. 指定版本安装。 查阅该包的官方文档,找到一个支持您当前DSW环境(Python/CUDA版本)的包版本,然后执行 pip install package_name==x.y.z

  3. 更换下载源。 尝试使用清华源等国内镜像:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ <yourLibraryName>

Q:在DSWTerminal里已装好了库,为什么在Jupyter Notebookimport 还是找不到?

可能是因为TerminalJupyter使用了不同的Python环境。可通过which python命令确认当前Python环境,或在Notebook中安装所需的库,例如:

!which python
/usr/local/bin/python

!pip install bottle
Looking in indexes: https://mirrors.aliyun.com/pypi/simple/
Collecting bottle
  Downloading https://mirrors.aliyun.com/pypi/packages/83/f6/b55...
                                            103.8/103.8 kB 6.7 ...
Installing collected packages: bottle
Successfully installed bottle-0.13.4

WARNING: Running pip as the 'root' user can result in broken permissions...

输出中的WARNING: Running pip as the 'root' user警告可忽略,DSW大部分官方镜像默认以root运行,详见Q11。

Q:代码报错说CUDA驱动版本太低,需要手动在DSW里升级NVIDIA驱动吗?

不要升级驱动版本。 DSW实例的驱动和CUDA是预装并锁定的,不能也不应该手动修改,否则极易导致实例损坏且无法恢复。正确做法:更换DSW镜像。停止当前实例,新建一个实例,选择官方提供的、带有更高版本CUDA和驱动的镜像。

例如官方镜像:modelscope:1.31.0-pytorch2.8.0-gpu-py311-cu124-ubuntu22.04。其中cu124代表CUDA版本为12.4,py311代表Python版本为3.11。

Q:在DSWVSCode中安装插件时报ETIMEDOUT错误,怎么解决?

VSCode插件安装需要访问VS Code Marketplace(marketplace.visualstudio.com),该域名为海外地址。如果DSW实例使用的是公有网关(共享带宽),访问海外资源时速度可能极慢或超时。

解决方法:

  1. 确认实例网络是否正常:在Terminal中执行 curl -I https://marketplace.visualstudio.com,检查能否正常返回。

  2. 如果访问海外资源超时,请参见通过专有网关提升公网访问速率,为实例所在VPC配置公网NAT网关和EIP,并使用专有网关。

  3. 配置专有网关后,如仍无法访问海外资源,可参见跨域拉取海外模型或容器镜像开启全球加速(GA)。

Q:想在DSW里使用Docker来部署我的应用,可以吗?

目前二级容器(子容器)功能仅支持由”灵骏资源组”或”1.0版本的通用资源组”创建的DSW实例。详情参见子容器管理DockerBoardDSW中使用Docker

Q:DSW实例里没有unzip7z命令,怎么解压文件?

您可以通过apt-get命令来安装(如非root用户,请在命令前加sudo)。

  • 安装unzip:在Terminal中运行 apt-get update && apt-get install -y unzip,然后使用 unzip your_file.zip

  • 安装p7zip (用于7z):在Terminal中运行 apt-get update && apt-get install -y p7zip-full,然后使用 7z x your_file.7z

Q:安装三方包时一直卡住或超时,是怎么回事?

安装第三方库时出现卡住、超时或速度极慢的情况,通常是网络问题。按以下步骤排查:

第一步:确认网络连通性

在终端执行ping www.aliyun.com命令,测试能否访问外网。如果网络不通,继续第二步检查网关配置。

第二步:检查网关配置

在实例配置页查看公网访问网关的类型:

  • 公有网关:DSW默认使用公有网关访问外网。您可以在DSW实例配置页面确认网关类型。使用公有网关时带宽受限,下载大型文件时网速可能不够,此时可选择专有网关。

  • 专有网关:专有网关提供更高的网络访问速度,选择专有网关后必须在专有网络(VPC)中创建公网NAT网关、绑定弹性IP(EIP)并配置SNAT,否则无法访问公网,详情参见通过专有网关提升公网访问速率

第三步:尝试更换pip下载源

DSW默认使用阿里云镜像源。如果下载慢,先确认当前源配置是否被改坏,可尝试恢复为阿里云源,或使用清华源作为备选:

# 首选:恢复为DSW默认的阿里云源
pip install -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com <yourLibraryName>

# 备选:使用清华源安装
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn <yourLibraryName>

也可以永久更改默认pip源,参见查看或更改pip

第四步:使用离线安装

如果网络实在不通或非常不稳定,可以采用离线安装方式:

  1. 在本地电脑(网络良好)下载.whl格式的安装包:

    # 在本地电脑执行
    pip download <yourLibraryName> -d ./packages
  2. 将下载的.whl文件上传到DSW实例,文件上传参见上传与下载文件

  3. DSW中离线安装:

    pip install /path/to/your-package.whl

Q:访问aiext-pypi镜像源失败(如aiext-pypi.mirrors.aliyuncs.com),怎么处理?

aiext-pypi.mirrors.aliyuncs.com 是 PAI 专为 PAI-PPU 系列预置镜像配置的内部 pip 加速源,仅限在该系列镜像环境内访问。若您使用的是 PyTorch、TensorFlow、ModelScope 等其他官方镜像,将无法访问此源。这属于正常的设计隔离,并非网络故障。

您可以通过以下命令查看当前pip源配置,确认是否使用了该加速源:

cat /etc/pip.conf

处理方式:

  • 如需使用该加速源,请更换为PAI-PPU系列镜像创建实例。

  • 如无需PAI-PPU镜像,可改用其他国内公共pip源(如阿里云源、清华源),参见查看或更改pip

Q:在DSWWebIDE里如何获取root权限?

DSW的大部分官方镜像默认以root用户身份运行,打开Terminal时看到命令提示符是root@...就说明已经是root。pip安装时出现的”不建议以root用户运行”的警告可以忽略。如果您的镜像不是root登录,这是镜像本身的设定,需要更换支持root的镜像。

Q:在DSW中如何启动xserver?

DSW内置了noVNC图形化桌面,可直接在浏览器中访问,无需手动启动xserver。如需运行GUI程序,请通过DSW提供的noVNC入口打开桌面;对于不需要显示界面的纯计算场景,也可使用xvfb-run <command>以虚拟显示方式运行(部分官方镜像已预装xvfb-run)。

Q:在DSW里可以使用 Vulkan 进行图形渲染吗?

支持Headless Vulkan。 DSW上已跑通大量依赖Vulkan的仿真和具身智能应用(如IsaacLab、Isaac Sim、SAPIEN、ManiSkill等),推荐使用Headless Vulkan(VK_KHR_headless_surface/EGL无显示渲染)或配合xvfb-run和内置noVNC显示渲染结果。

官方Notebook Gallery有专门的"具身AI"分类,收录了相关案例可供参考:https://gallery.pai-ml.com/#/?pageNum=1&tag[0]=具身AI

如果遇到Vulkan ICD初始化失败,请优先更换为带完整GPU驱动栈的官方镜像,并检查VK_ICD_FILENAMESLD_LIBRARY_PATH环境变量是否正确设置。