2016-02-27 67 views
0

我正在做一個遊戲,我做了一個日誌系統。它創建一個新目錄並在其中生成一個.log文件。 我今天發佈它只是爲了發現它不起作用。它適用於我,但不適用於其他人。我曾嘗試makedirs,但無濟於事。下面是代碼:不能mkdir,文件沒有找到

if not os.path.exists('C:/ToontownRebuilt/src/user/logs/'): 
    os.mkdir('C:/ToontownRebuilt/src/user/logs/client') 
    self.notify.info('Made new directory to save logs.') 

和這裏的人(一個報告說,它給我)遭受錯誤的回溯得到:

:ClientStart: Reading user/preferences.json... 
Traceback (most recent call last): 
File "C:\ToontownRebuilt\src\dependencies\panda\python\lib\runpy.py", line 162, in _run_module_as_main 
"__main__", fname, loader, pkg_name) 
File "C:\ToontownRebuilt\src\dependencies\panda\python\lib\runpy.py", line 72, in _run_code 
exec code in run_globals 
File "C:\ToontownRebuilt\src\toontown\toonbase\ClientStart.py", line 94, in <module> 
__builtin__.launcher = TTSLauncher() 
File "toontown\launcher\TTSLauncher.py", line 34, in __init__ 
WindowsError: [Error 3] The system cannot find the path specified: 'C:/ToontownRebuilt/src/user/logs/client' 

任何幫助,這個問題表示讚賞。它讓我受不了。它適用於我,但不適用於其他人。爲什麼?我該如何解決它?另外,如果這個問題不好,你可以評論一些關於如何改善它的提示嗎?謝謝! :d

+0

您是否確定您的用戶正在運行帶有寫入和執行權限的腳本/可執行文件? – seanmus

+0

@SeanM這可能是問題所在。我需要嘗試以管理員身份運行它。有沒有一種簡單的方法在python腳本中請求管理員權限? – s00t

+0

解決這個問題最簡單的方法是或者嘗試...除了像Rolf那樣建議或者創建一個包含所有目錄的新安裝程序,而不是依靠os.mkdir()來創建你需要的目錄。 – seanmus

回答

0

你可以使用一個try..except聲明,如果路徑必須是固定的。

if not os.path.exists('C:/ToontownRebuilt/src/user/logs/'): 
    try: 
     os.mkdir('C:/ToontownRebuilt/src/user/logs/client') 
     print('Made new directory to save logs.') 
    except: 
     print("Unable to create C:/ToontownRebuilt/src/logs/client\nPlease create manually and try again.") 
+0

似乎它會解決這個問題。至少在一定程度上他們將能夠玩這個遊戲。明天他們會醒來,我會告訴你它是否適合他們。 – s00t

+0

這工作完美。我在製作日誌時遇到了同樣的錯誤,所以這也適用於此。 – s00t

0

其他用戶可能沒有目錄稱爲

ToontownRebuilt 
    user 

或者

src 

縮短:

os.mkdir('user/logs/client') 
+0

他們這樣做,因爲我做了一個提取到C:\的安裝程序。它適用於我,所以它應該爲他們工作,但事實並非如此。儘管如此,感謝您投入2美分。 – s00t