2016-02-27 2 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 Это может быть проблема. Мне нужно попробовать их запустить как admin. Есть ли простой способ запроса прав администратора в сценарии python? – s00t

+0

Самый простой способ решить эту проблему - либо «попробуй ... кроме», как сказал Рольф, или создайте новый установщик, который включает все каталоги, а не полагается на 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