2017-06-28 31 views
0

Ich habe den folgenden Code in einem laufenden Thread verwendet.FileNotFoundError: [WinError 2] Das System kann die angegebene Datei nicht finden: 'manage.py' IN PYTHON/DJANGO

os.chdir("MEDIA/" + str(email) + "/" + str(id) + "/") 
os.system("rscript DataSet.R " + str(filename) + " >>logfile.log") 
os.chdir(settings.BASE_DIR) 

Dieser Fehler kommt manchmal, wenn ich meinen Server laufen lasse. Ich habe keine Ahnung, was das Problem hier ist. Die meiste Zeit arbeitet der Code. Ich muss Chdir verwenden, um meine R-Skripte auszuführen.

Traceback (most recent call last): 
    File "manage.py", line 22, in <module> 
    execute_from_command_line(sys.argv) 
    File "C:\Users\MEXSON~1\Desktop\PROJEC~1\TOX2020\MAINWE~1\TOX202~1\lib\site-packages\django\core\management\__init__.py", line 363, in execute_from_command_line 
    utility.execute() 
    File "C:\Users\MEXSON~1\Desktop\PROJEC~1\TOX2020\MAINWE~1\TOX202~1\lib\site-packages\django\core\management\__init__.py", line 355, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "C:\Users\MEXSON~1\Desktop\PROJEC~1\TOX2020\MAINWE~1\TOX202~1\lib\site-packages\django\core\management\base.py", line 283, in run_from_argv 
    self.execute(*args, **cmd_options) 
    File "C:\Users\MEXSON~1\Desktop\PROJEC~1\TOX2020\MAINWE~1\TOX202~1\lib\site-packages\django\core\management\commands\runserver.py", line 62, in execute 
    super(Command, self).execute(*args, **options) 
    File "C:\Users\MEXSON~1\Desktop\PROJEC~1\TOX2020\MAINWE~1\TOX202~1\lib\site-packages\django\core\management\base.py", line 330, in execute 
    output = self.handle(*args, **options) 
    File "C:\Users\MEXSON~1\Desktop\PROJEC~1\TOX2020\MAINWE~1\TOX202~1\lib\site-packages\django\core\management\commands\runserver.py", line 101, in handle 
    self.run(**options) 
    File "C:\Users\MEXSON~1\Desktop\PROJEC~1\TOX2020\MAINWE~1\TOX202~1\lib\site-packages\django\core\management\commands\runserver.py", line 110, in run 
    autoreload.main(self.inner_run, None, options) 
    File "C:\Users\MEXSON~1\Desktop\PROJEC~1\TOX2020\MAINWE~1\TOX202~1\lib\site-packages\django\utils\autoreload.py", line 332, in main 
    reloader(wrapped_main_func, args, kwargs) 
    File "C:\Users\MEXSON~1\Desktop\PROJEC~1\TOX2020\MAINWE~1\TOX202~1\lib\site-packages\django\utils\autoreload.py", line 298, in python_reloader 
    reloader_thread() 
    File "C:\Users\MEXSON~1\Desktop\PROJEC~1\TOX2020\MAINWE~1\TOX202~1\lib\site-packages\django\utils\autoreload.py", line 276, in reloader_thread 
    change = fn() 
    File "C:\Users\MEXSON~1\Desktop\PROJEC~1\TOX2020\MAINWE~1\TOX202~1\lib\site-packages\django\utils\autoreload.py", line 206, in code_changed 
    stat = os.stat(filename) 
FileNotFoundError: [WinError 2] The system cannot find the file specified: 'manage.py' 

Antwort

0

Sie verwenden 'runserver' Django zu starten. Es hat eine "Autoreload" -Funktion, die Codeänderungen erkennt und sich dann selbst neu startet.

Da Sie das Verzeichnis des Prozesses ändern, befindet sich Django nicht mehr im Projektstamm, daher wird die Liste der Dateien, die in django.utils.autoreload.gen_files generiert werden, nicht berechnet.

Die einfache Lösung besteht darin, subprocess und fork zu verwenden, dann das Verzeichnis im untergeordneten ändern.

+0

Bitte senden Sie mir den Beispielcode, um dies zu erreichen. – RoboMex

+0

danke für die Erklärung ... Ich habe es gelöst. – RoboMex

0

Entfernen Sie einfach den folgenden Code aus Ihrem Skript und es wird perfekt funktionieren. os.chdir (settings.BASE_DIR)

Oder sonst, Verschieben Sie Ihre Codes in ein anderes Skript, und importieren Sie dann diese Skriptdatei.

Hoffe, das hilft.

Verwandte Themen