FileNotFoundError:[WinError 2]系统找不到指定的文件:'manage.py'IN PYTHON / DJANGO

时间:2017-06-28 18:42:07

标签: django python-2.7 django-models

我在运行后台的线程中使用了以下代码。

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

每当我运行服务器时,都会出现此错误。我不知道这里的问题是什么。大多数时候代码都有效。我必须使用chdir来运行我的R脚本。

    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'

2 个答案:

答案 0 :(得分:1)

只需从脚本中删除以下代码即可完美运行。 os.chdir(settings.BASE_DIR)

否则, 将代码移动到其他脚本中,然后导入该脚本文件。

希望这有帮助。

答案 1 :(得分:0)

使用'runserver'启动Django。它具有“自动重载”功能,可检测代码更改,然后重新启动。

由于您更改了进程的目录,因此Django不再位于项目根目录中,因此它在django.utils.autoreload.gen_files中生成的文件列表无法计算。

简单的解决方法是使用subprocess和fork,然后更改子项中的目录。