腾讯云空间,高性能显卡云,安装xinference报错,pip install 空间不够用了
在https://ide.cloud.tencent.com/ 云端,Ollama环境,安装Xinference命令行工具
pip install "xinference[all]"
提示错误:
Downloading http://mirrors.tencentyun.com/pypi/packages/cd/08/cb88fd52c08df57ccc4f722241150643d521b3174f8d0c3a1ec5549c3927/vllm-0.9.0-cp38-abi3-manylinux1_x86_64.whl (377.2 MB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╺━━━━━━━ 302.3/377.2 MB 7.7 MB/s eta 0:00:10
WARNING: There was an error checking the latest version of pip.
ERROR: Exception:
Traceback (most recent call last):File "/root/miniforge3/lib/python3.11/site-packages/pip/_vendor/urllib3/response.py", line 438, in _error_catcheryieldFile "/root/miniforge3/lib/python3.11/site-packages/pip/_vendor/urllib3/response.py", line 561, in readdata = self._fp_read(amt) if not fp_closed else b""^^^^^^^^^^^^^^^^^^File "/root/miniforge3/lib/python3.11/site-packages/pip/_vendor/urllib3/response.py", line 527, in _fp_readreturn self._fp.read(amt) if amt is not None else self._fp.read()^^^^^^^^^^^^^^^^^^File "/root/miniforge3/lib/python3.11/site-packages/pip/_vendor/cachecontrol/filewrapper.py", line 102, in readself.__buf.write(data)File "/root/miniforge3/lib/python3.11/tempfile.py", line 500, in func_wrapperreturn func(*args, **kwargs)^^^^^^^^^^^^^^^^^^^^^
OSError: [Errno 28] No space left on deviceDuring handling of the above exception, another exception occurred:Traceback (most recent call last):File "/root/miniforge3/lib/python3.11/site-packages/pip/_internal/cli/base_command.py", line 106, in _run_wrapperstatus = _inner_run()^^^^^^^^^^^^File "/root/miniforge3/lib/python3.11/site-packages/pip/_internal/cli/base_command.py", line 97, in _inner_runreturn self.run(options, args)^^^^^^^^^^^^^^^^^^^^^^^File "/root/miniforge3/lib/python3.11/site-packages/pip/_internal/cli/req_command.py", line 67, in wrapperreturn func(self, options, args)^^^^^^^^^^^^^^^^^^^^^^^^^File "/root/miniforge3/lib/python3.11/site-packages/pip/_internal/commands/install.py", line 386, in runrequirement_set = resolver.resolve(^^^^^^^^^^^^^^^^^File "/root/miniforge3/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 95, in resolveresult = self._result = resolver.resolve(^^^^^^^^^^^^^^^^^File "/root/miniforge3/lib/python3.11/site-packages/pip/_vendor/resolvelib/resolvers.py", line 546, in resolvestate = resolution.resolve(requirements, max_rounds=max_rounds)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/root/miniforge3/lib/python3.11/site-packages/pip/_vendor/resolvelib/resolvers.py", line 427, in resolvefailure_causes = self._attempt_to_pin_criterion(name)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/root/miniforge3/lib/python3.11/site-packages/pip/_vendor/resolvelib/resolvers.py", line 237, in _attempt_to_pin_criterionfor candidate in criterion.candidates:File "/root/miniforge3/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 162, in <genexpr>return (c for c in iterator if id(c) not in self._incompatible_ids)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/root/miniforge3/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 53, in _iter_builtcandidate = func()^^^^^^File "/root/miniforge3/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 187, in _make_candidate_from_linkbase: Optional[BaseCandidate] = self._make_base_candidate_from_link(^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/root/miniforge3/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 233, in _make_base_candidate_from_linkself._link_candidate_cache[link] = LinkCandidate(^^^^^^^^^^^^^^File "/root/miniforge3/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 304, in __init__super().__init__(File "/root/miniforge3/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 159, in __init__self.dist = self._prepare()^^^^^^^^^^^^^^^File "/root/miniforge3/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 236, in _preparedist = self._prepare_distribution()^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/root/miniforge3/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 315, in _prepare_distributionreturn preparer.prepare_linked_requirement(self._ireq, parallel_builds=True)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/root/miniforge3/lib/python3.11/site-packages/pip/_internal/operations/prepare.py", line 527, in prepare_linked_requirementreturn self._prepare_linked_requirement(req, parallel_builds)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/root/miniforge3/lib/python3.11/site-packages/pip/_internal/operations/prepare.py", line 598, in _prepare_linked_requirementlocal_file = unpack_url(^^^^^^^^^^^File "/root/miniforge3/lib/python3.11/site-packages/pip/_internal/operations/prepare.py", line 170, in unpack_urlfile = get_http_url(^^^^^^^^^^^^^File "/root/miniforge3/lib/python3.11/site-packages/pip/_internal/operations/prepare.py", line 111, in get_http_urlfrom_path, content_type = download(link, temp_dir.path)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/root/miniforge3/lib/python3.11/site-packages/pip/_internal/network/download.py", line 148, in __call__for chunk in chunks:File "/root/miniforge3/lib/python3.11/site-packages/pip/_internal/cli/progress_bars.py", line 55, in _rich_progress_barfor chunk in iterable:File "/root/miniforge3/lib/python3.11/site-packages/pip/_internal/network/utils.py", line 65, in response_chunksfor chunk in response.raw.stream(File "/root/miniforge3/lib/python3.11/site-packages/pip/_vendor/urllib3/response.py", line 622, in streamdata = self.read(amt=amt, decode_content=decode_content)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/root/miniforge3/lib/python3.11/site-packages/pip/_vendor/urllib3/response.py", line 560, in readwith self._error_catcher():File "/root/miniforge3/lib/python3.11/contextlib.py", line 158, in __exit__self.gen.throw(typ, value, traceback)File "/root/miniforge3/lib/python3.11/site-packages/pip/_vendor/urllib3/response.py", line 455, in _error_catcherraise ProtocolError("Connection broken: %r" % e, e)
pip._vendor.urllib3.exceptions.ProtocolError: ("Connection broken: OSError(28, 'No space left on device')", OSError(28, 'No space left on device'))
运行
df -h
Filesystem Size Used Avail Use% Mounted on
overlay 49G 39G 8.2G 83% /
tmpfs 64M 0 64M 0% /dev
tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/vdb 49G 39G 8.2G 83% /mnt
tmpfs 16G 28K 16G 1% /dev/shm
tmpfs 16G 12K 16G 1% /proc/driver/nvidia
/dev/vda2 30G 19G 9.8G 66% /usr/bin/nvidia-smi
tmpfs 3.1G 872K 3.1G 1% /run/nvidia-persistenced/socket
udev 16G 0 16G 0% /dev/nvidia0
要将pip的临时目录设置为空间较大的目录,设置成哪个目录好?
根据你提供的磁盘空间信息,建议将pip的临时目录设置到空间较大的目录中。以下是分析和建议:
空间分析:
可用空间较大的目录:
/ 和 /mnt:可用空间均为 8.2G(已用83%)
/sys/fs/cgroup、/dev/shm、/proc/driver/nvidia、/run/nvidia-persistenced/socket:虽然显示空间大,但这些是特殊文件系统(tmpfs),不适合长期存储或作为临时目录。
/usr/bin/nvidia-smi:挂载在/dev/vda2,可用空间 9.8G(已用66%),但这是系统目录,不建议用于临时文件。
/dev/nvidia0:挂载在udev,是设备文件,不可用。
最佳选择:
/mnt:
可用空间 8.2G,与根目录相同,但通常/mnt用于挂载额外存储,可能是独立磁盘(如/dev/vdb)。
如果/mnt是独立磁盘,未来扩展空间更方便。
根目录 /:
可用空间 8.2G,但根目录可能包含系统文件,长期使用可能影响系统稳定性。
推荐操作:
优先选择 /mnt:
确认/mnt是否为独立磁盘(从你的输出看,/dev/vdb挂载到/mnt,可能是独立存储)。
设置pip临时目录:
bash
export TMPDIR=/mnt/pip_temp
mkdir -p /mnt/pip_temp
pip install --cache-dir=/mnt/pip_temp
或永久生效(添加到~/.bashrc或/etc/environment):
bash
echo ‘export TMPDIR=/mnt/pip_temp’ >> ~/.bashrc
source ~/.bashrc
如果/mnt不可用:
使用根目录(不推荐长期使用):
bash
export TMPDIR=/tmp/pip_temp
mkdir -p /tmp/pip_temp
pip install --cache-dir=/tmp/pip_temp
注意事项:
确保目标目录(如/mnt/pip_temp)有写入权限。
如果磁盘空间后续紧张,考虑扩展/dev/vdb或清理旧文件。
对于生产环境,建议挂载更大的独立磁盘到/mnt或专用目录(如/data)。
最终建议:
将pip临时目录设置为/mnt/pip_temp,因为:
/mnt可能是独立磁盘(/dev/vdb),未来扩展方便。
避免占用根目录空间,减少系统风险。