Permission denied: 'C:\\Users\\Admin\\AppData\\Local\\Temp\\tmp06sdogpt.py'
2021/5/1 18:27:26
本文主要是介绍Permission denied: 'C:\\Users\\Admin\\AppData\\Local\\Temp\\tmp06sdogpt.py',对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
运行时出现下面的错误:
Traceback (most recent call last): File "D:/Projects/project_name/tools/train.py", line 178, in <module> main() File "D:/Projects/project_name/tools/train.py", line 167, in main train_detector( File "D:\Projects\project_name\mmdet\apis\train.py", line 147, in train_detector runner.resume(cfg.resume_from) File "D:\Anaconda3\envs\hzmd\lib\site-packages\mmcv\runner\base_runner.py", line 346, in resume config = mmcv.Config.fromstring( File "D:\Anaconda3\envs\hzmd\lib\site-packages\mmcv\utils\config.py", line 279, in fromstring cfg = Config.fromfile(temp_file.name) File "D:\Anaconda3\envs\hzmd\lib\site-packages\mmcv\utils\config.py", line 251, in fromfile cfg_dict, cfg_text = Config._file2dict(filename, File "D:\Anaconda3\envs\hzmd\lib\site-packages\mmcv\utils\config.py", line 137, in _file2dict Config._substitute_predefined_vars(filename, File "D:\Anaconda3\envs\hzmd\lib\site-packages\mmcv\utils\config.py", line 112, in _substitute_predefined_vars with open(filename, 'r') as f: PermissionError: [Errno 13] Permission denied: 'C:\\Users\\Admin\\AppData\\Local\\Temp\\tmp06sdogpt.py'
这是因为mmcv\utils\config.py的_file2dict()函数想在C盘创建临时文件,但是PyTorch没有在C盘创建文件的权限,因此造成了PermissionError.解决的办法是在D盘创建一个Temp文件夹,让_file2dict()在D盘创建临时文件,就不会有PermissionError了.因此对_file2dict(filename, use_predefined_variables=True)这个函数进行了修改:
@staticmethod def _file2dict(filename, use_predefined_variables=True): filename = osp.abspath(osp.expanduser(filename)) filenames = filename.split('\\') if filenames[0] == 'C:': filename = 'D:\\Temp\\' +filenames[-1] f = open(filename, 'w') f.close() check_file_exist(filename) fileExtname = osp.splitext(filename)[1] if fileExtname not in ['.py', '.json', '.yaml', '.yml']: raise IOError('Only py/yml/yaml/json type are supported now!') with tempfile.TemporaryDirectory() as temp_config_dir: temp_config_dir = 'D:\\Temp\\' + temp_config_dir.split('\\')[-1] os.makedirs(temp_config_dir) temp_config_file = tempfile.NamedTemporaryFile( dir=temp_config_dir, suffix=fileExtname) if platform.system() == 'Windows': temp_config_file.close() temp_config_name = osp.basename(temp_config_file.name) # Substitute predefined variables if use_predefined_variables: Config._substitute_predefined_vars(filename, temp_config_file.name) else: shutil.copyfile(filename, temp_config_file.name)
先判断是否在C盘创建临时文件,如果是,则在D:\Temp下创建相同名字的临时文件夹和文件,这样就不会有PermissionError了.
这篇关于Permission denied: 'C:\\Users\\Admin\\AppData\\Local\\Temp\\tmp06sdogpt.py'的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-29Elasticsearch慢查询日志配置
- 2024-05-29揭秘华为如此多成功项目的产品关键——Charter模板
- 2024-05-29海外IDC业务拓展的7大挑战
- 2024-05-29InLine Chat功能优化对标Github Copilot,CodeGeeX带来更高效、更直观的编程体验!
- 2024-05-29CodeGeeX 智能编程助手 6 项功能升级,在Visual Studio插件市场霸榜2周!
- 2024-05-29AutoMQ 生态集成 Apache Doris
- 2024-05-292024年IDC行业的深度挖掘:机遇、挑战与未来展望
- 2024-05-29五款扩展组件齐发 —— Volcano、Keda、Crane-scheduler 等,邀你体验
- 2024-05-29AutoMQ 对象存储数据高效组织的秘密: Compaction
- 2024-05-29活动预告|来 GIAC 大会听大数据降本利器:AutoMQ 基于云原生重新设计的 Kafka