鱼C论坛

 找回密码
 立即注册
查看: 1747|回复: 6

[已解决]Linux服务器跑代码权限

[复制链接]
发表于 2023-8-7 16:22:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
Traceback (most recent call last):
  File "/home/data/pxy/apython/loss定版/Stage1/main_train.py", line 29, in <module>
    os.makedirs(model_save_path, exist_ok = True)
  File "/home/data/anaconda3/envs/loss/lib/python3.8/os.py", line 223, in makedirs
    mkdir(name, mode)
PermissionError: [Errno 13] Permission denied: '/model'
运行代码创建文件是出现这个错误请问怎么回事怎么解决
最佳答案
2023-8-7 16:24:45
你的model目录是在根目录下的?还是在程序工作目录?如果是程序工作目录则用 ./model
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-8-7 16:22:21 | 显示全部楼层
这个错误是由于您在运行代码时没有足够的权限来创建文件夹导致的。要解决这个问题,您可以尝试以下几种方法:

1. 检查文件夹权限:首先,确保您有足够的权限在所需的位置创建文件夹。可以使用以下命令检查文件夹的权限:
   ls -ld /model
   
   如果权限不足,您可以使用以下命令更改文件夹的权限:
   sudo chmod 777 /model
   

2. 使用合适的用户运行代码:确保您使用的是具有足够权限的用户来运行代码。如果您使用的是普通用户账户,请尝试使用管理员账户或具有适当权限的用户来运行代码。

3. 更改代码中的文件路径:如果您没有权限在指定的位置创建文件夹,您可以尝试更改代码中的文件路径,将文件夹创建在您具有写入权限的位置,或者使用绝对路径来创建文件夹。

请注意,更改文件夹权限可能会带来安全风险,因此请仔细考虑谁有权访问和修改这些文件夹。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2023-8-7 16:22:24 | 显示全部楼层
这个错误表示在你的代码中尝试创建文件夹时,由于权限不足而导致失败。

解决这个问题可以采取以下几种方法:

1. **更改目标文件夹的权限**:使用 chmod 命令为目标文件夹赋予写入权限。例如,运行以下命令将 /model 文件夹的权限更改为可以写入:
chmod +w /model

2. **以管理员身份运行**:在运行你的代码之前,以具有足够权限的管理员身份登录到服务器上。这样,你就可以在任何位置创建文件夹。

3. **修改代码中的路径**:如果你没有足够的权限在指定的位置创建文件夹,你可以考虑修改代码中涉及文件夹路径的部分。将目标文件夹更改为你有写入权限的其他文件夹。

请注意,在 Linux 系统上,根据你的具体场景和环境设置,可能需要使用管理员权限或者与其他用户协商来解决权限问题。确保你遵循适当的安全实践,并遵守系统管理员的规定。

希望这些方法对解决你的问题有所帮助。如果还有其他疑问,请随时向我提问。
如果问题已经解决,请设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-7 16:22:26 | 显示全部楼层
问题分析:
报错信息显示在执行os.makedirs(model_save_path, exist_ok=True)时出现了权限错误(PermissionError),即没有足够的权限创建文件夹'/model'。

解决方法:
1. 首先,确认当前用户是否有足够的权限在所需目录中创建文件夹。可以通过运行ls -ld /命令查看根目录的权限设置,或者使用ls -ld /path/to/folder查看指定目录的权限设置。
2. 如果当前用户没有足够的权限,在使用os.makedirs()创建文件夹之前,可以尝试使用sudo命令来提升权限,例如sudo python main_train.py
3. 如果是非root用户,但具有sudo权限,可以将需要创建文件夹的代码块放在以下这段代码中,并将your_command替换为需要执行的命令:
import subprocesscommand = "sudo your_command"subprocess.call(command, shell=True)
注意:使用sudo命令需要输入密码验证,因此需要确保在服务器上有相应的sudo权限。

修改后的代码示例:
import osimport subprocessmodel_save_path = '/model'# 检查是否具有足够的权限创建文件夹if not os.access(model_save_path, os.W_OK):    # 使用sudo命令创建文件夹    command = f"sudo mkdir {model_save_path}"    subprocess.call(command, shell=True)os.makedirs(model_save_path, exist_ok=True)# 继续执行其他代码
上述代码会先使用os.access()函数检查当前用户是否具有写入权限,如果没有,则使用sudo mkdir命令创建文件夹,并通过os.makedirs()继续尝试创建文件夹。注意替换your_command为实际的创建文件夹命令。

希望这些信息对你有帮助!如果还有其他问题,请随时提问。

如果回答对你有帮助,请给我一个最佳答案!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-7 16:24:45 | 显示全部楼层    本楼为最佳答案   
你的model目录是在根目录下的?还是在程序工作目录?如果是程序工作目录则用 ./model
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-8-7 16:39:49 | 显示全部楼层
isdkz 发表于 2023-8-7 16:24
你的model目录是在根目录下的?还是在程序工作目录?如果是程序工作目录则用 ./model

牛啊  哥们   为啥啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-7 17:42:43 | 显示全部楼层
1207139945 发表于 2023-8-7 16:39
牛啊  哥们   为啥啊

你去了解一下绝对路径和相对路径的知识
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-22 01:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表