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了.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 PermissionError: [Errno 13] Permission denied: 'C:\\Users\\Administrator\\AppData\\Local\\pyinstaller\\bincache00_py37_64bit\\ucrtbase.dll' Command "python setup.py egg_info" failed with error code 1 in c:\users\w5659\appdata\local\temp\pip-build-fs2yzl\ipython\ 安裝gensim報錯:Original error was: DLL load failed: 找不到指定的模塊。 Command "python setup.py egg_info" failed with error code 1 in C:\Users\xubing\AppData\Local\Temp\pip-install-nta89iep\gensim\ " on line 75 -- aborting creation process"> !include: could not find: "C:\Users\走我們~1\AppData\Local\Temp\t-wc8ODN\0-messages.nsh" Error in script " " on line 75 -- aborting creation process Go:go程序報錯Cannot run program "C:\Users\dell\AppData\Local\Temp\___go_build_hello_go.exe" (in directory "…………"):該版本的 %1 與你運行的 Windows 版本不兼容。 Error:Could not open initscript class cache for initialization script 'C:\Users\Avishek\AppData\Local\Temp\asLocalRepo14.gradle' (C:\Users\Avishek.gradle\caches\2.2.1\scripts\asLocalRepo14_dkwbdtenxxg 解決 ImportError: cannot import name 'initializations' from 'keras' (C:\Users\admin\AppData\Roaming\Python\Python37\site-packages\keras\__init__.py) 出現錯誤OSError: Failed to open file b'C:\\Users\\\xe5\xbb\x96\xe5\xbb\xba\xe8\xb6\x85\\AppData\\Local\\Temp\\scipy-mvo2l638' windows 常見環境變量(%AppData%、%TEMP%、%TMP%) scalac: Token not found: C:\Users\xjr76\AppData\Local\JetBrains\IdeaIC2021.1\compile-server\tokens\3200
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM