1、在采用os.makedirs()创建目录文件时,windows系统下代码执行OK,
os.makedirs(name, mode=0o777, exist_ok=False)
但是我在Ubuntu执行时就遇到了权限错误:
mkdir(name, mode)
PermissionError: [Errno 13] Permission denied
我debug后发现os.makedirs(mode=511),而不是库文件默认的0o777。即使我显式设置了该值为默认的0o777,传入的还是另一个默认的模式为 511 (八进制),我不是很清楚这两个都是默认的模式有何区别。但是我的代码执行到库函数里的os.makedirs(),并调用到os.mkdir()创建目录文件时就会报错。我尝试了很多方法,这里只记录解决有效的办法,
在terminal中打开要创建目标文件所在文件夹的位置,然后更改权限:
cd /'目标文件夹'位置
sudo chmod -R 777 目标文件夹名
其他修改文件夹权限的方法我也尝试了,但是没啥用,只有这个有效。
2、代码文件中有tqdm包,我在terminal执行:
sudo python3 目标脚本文件.py --input <> --output <>
这个操作会引发tqdm不存在的问题。在terminal进入python环境import tqdm是有该包的,然后配环境变量,重装等操作都不能解决在terminal中命令行执行报错的问题。所以最好是在环境中运行run按钮执行操作。目前我只能通过此方式解决这个问题。