克隆Conda环境后执行ray.init()出现PermissionError问题求助
解决克隆Conda环境后Ray.init()触发的PermissionError问题
问题描述
将Conda环境克隆到新电脑后运行Ray项目,执行ray.init()时遭遇权限错误,具体报错如下:
>>> import ray >>> ray.init() 2023-11-17 17:26:16,023 INFO resource_spec.py:212 -- Starting Ray with 33.89 GiB memory available for workers and up to 16.97 GiB for objects. You can adjust these settings with ray.init(memory=<bytes>, object_store_memory=<bytes>). Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/root/anaconda3/envs/ncd/lib/python3.7/site-packages/ray/worker.py", line 767, in init ray_params=ray_params) File "/root/anaconda3/envs/ncd/lib/python3.7/site-packages/ray/node.py", line 177, in __init__ self.start_head_processes() File "/root/anaconda3/envs/ncd/lib/python3.7/site-packages/ray/node.py", line 649, in start_head_processes self.start_redis() File "/root/anaconda3/envs/ncd/lib/python3.7/site-packages/ray/node.py", line 473, in start_redis fate_share=self.kernel_fate_share) File "/root/anaconda3/envs/ncd/lib/python3.7/site-packages/ray/services.py", line 769, in start_redis fate_share=fate_share) File "/root/anaconda3/envs/ncd/lib/python3.7/site-packages/ray/services.py", line 943, in _start_redis_instance fate_share=fate_share) File "/root/anaconda3/envs/ncd/lib/python3.7/site-packages/ray/services.py", line 514, in start_ray_process preexec_fn=preexec_fn if sys.platform != "win32" else None) File "/root/anaconda3/envs/ncd/lib/python3.7/subprocess.py", line 800, in __init__ restore_signals, start_new_session) File "/root/anaconda3/envs/ncd/lib/python3.7/subprocess.py", line 1551, in _execute_child raise child_exception_type(errno_num, err_msg, err_filename) PermissionError: [Errno 13] Permission denied: '/root/anaconda3/envs/ncd/lib/python3.7/site-packages/ray/core/src/ray/thirdparty/redis/src/redis-server'
已确认环境目录权限为drwxr-xr-x 12 root root 4096 Nov 17 16:53 ncd,但问题仍存在。
解决方案
1. 修复Redis可执行文件的执行权限
报错核心是redis-server文件缺少执行权限,先检查该文件的权限:
ls -l /root/anaconda3/envs/ncd/lib/python3.7/site-packages/ray/core/src/ray/thirdparty/redis/src/redis-server
如果输出中文件权限不含x(执行权限),执行以下命令添加:
chmod +x /root/anaconda3/envs/ncd/lib/python3.7/site-packages/ray/core/src/ray/thirdparty/redis/src/redis-server
2. 调整环境目录的所有权(若当前非root用户运行)
环境位于/root目录下,普通用户默认无读写执行权限。将目录所有权切换为当前用户:
chown -R 你的用户名:你的用户名 /root/anaconda3/envs/ncd
替换你的用户名为实际登录的用户名,之后重新激活环境运行Ray。
3. 重新安装Ray到克隆环境
克隆Conda环境可能导致二进制文件依赖或权限损坏,直接重新安装Ray:
conda activate ncd pip uninstall -y ray pip install ray
内容的提问来源于stack exchange,提问作者BobCheng
相关产品推荐
相关产品推荐

