在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_catcher
yield
File "/root/miniforge3/lib/python3.11/site-packages/pip/_vendor/urllib3/response.py", line 561, in read
data = 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_read
return 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 read
self.__buf.write(data)
File "/root/miniforge3/lib/python3.11/tempfile.py", line 500, in func_wrapper
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
OSError: [Errno 28] No space left on device
During 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_wrapper
status = _inner_run()
^^^^^^^^^^^^
File "/root/miniforge3/lib/python3.11/site-packages/pip/_internal/cli/base_command.py", line 97, in _inner_run
return self.run(options, args)
^^^^^^^^^^^^^^^^^^^^^^^
File "/root/miniforge3/lib/python3.11/site-packages/pip/_internal/cli/req_command.py", line 67, in wrapper
return func(self, options, args)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/root/miniforge3/lib/python3.11/site-packages/pip/_internal/commands/install.py", line 386, in run
requirement_set = resolver.resolve(
^^^^^^^^^^^^^^^^^
File "/root/miniforge3/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 95, in resolve
result = self._result = resolver.resolve(
^^^^^^^^^^^^^^^^^
File "/root/miniforge3/lib/python3.11/site-packages/pip/_vendor/resolvelib/resolvers.py", line 546, in resolve
state = resolution.resolve(requirements, max_rounds=max_rounds)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/root/miniforge3/lib/python3.11/site-packages/pip/_vendor/resolvelib/resolvers.py", line 427, in resolve
failure_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_criterion
for 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_built
candidate = func()
^^^^^^
File "/root/miniforge3/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 187, in _make_candidate_from_link
base: 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_link
self._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 _prepare
dist = self._prepare_distribution()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/root/miniforge3/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 315, in _prepare_distribution
return 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_requirement
return 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_requirement
local_file = unpack_url(
^^^^^^^^^^^
File "/root/miniforge3/lib/python3.11/site-packages/pip/_internal/operations/prepare.py", line 170, in unpack_url
file = get_http_url(
^^^^^^^^^^^^^
File "/root/miniforge3/lib/python3.11/site-packages/pip/_internal/operations/prepare.py", line 111, in get_http_url
from_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_bar
for chunk in iterable:
File "/root/miniforge3/lib/python3.11/site-packages/pip/_internal/network/utils.py", line 65, in response_chunks
for chunk in response.raw.stream(
File "/root/miniforge3/lib/python3.11/site-packages/pip/_vendor/urllib3/response.py", line 622, in stream
data = self.read(amt=amt, decode_content=decode_content)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/root/miniforge3/lib/python3.11/site-packages/pip/_vendor/urllib3/response.py", line 560, in read
with 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_catcher
raise 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),未来扩展方便。
避免占用根目录空间,减少系统风险。