﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
32783	Auoreloader crashes in a conda env.	JonathanNickelson	Mariusz Felisiak	"The changes in this commit https://github.com/django/django/commit/ec6d2531c59466924b645f314ac33f54470d7ac3 to def get_child_arguments() of django/utils/autoreload.py cause a crash when running manage.py as a script from a conda env. For example:

{{{miniconda3/envs/promotion_tool_38/bin/manage.py runserver 10.12.123.45:8183}}} no longer works and gives this stacktrace:
{{{
Traceback (most recent call last):
  File ""miniconda3/envs/promotion_tool_38/bin/manage.py"", line 4, in <module>
    __import__('pkg_resources').run_script('promotion-tool==1.0.28', 'manage.py')
  File ""/home/srv_jaxqa/miniconda3/envs/promotion_tool_38/lib/python3.8/site-packages/pkg_resources/__init__.py"", line 651, in run_script
    self.require(requires)[0].run_script(script_name, ns)
  File ""/home/srv_jaxqa/miniconda3/envs/promotion_tool_38/lib/python3.8/site-packages/pkg_resources/__init__.py"", line 1448, in run_script
    exec(code, namespace, namespace)
  File ""/site/home/srv_jaxqa/miniconda3/envs/promotion_tool_38/lib/python3.8/site-packages/promotion_tool-1.0.28-py3.7.egg/EGG-INFO/scripts/manage.py"", line 21, in <module>
    main()
  File ""/site/home/srv_jaxqa/miniconda3/envs/promotion_tool_38/lib/python3.8/site-packages/promotion_tool-1.0.28-py3.7.egg/EGG-INFO/scripts/manage.py"", line 17, in main
    execute_from_command_line(sys.argv)
  File ""/home/srv_jaxqa/miniconda3/envs/promotion_tool_38/lib/python3.8/site-packages/django/core/management/__init__.py"", line 419, in execute_from_command_line
    utility.execute()
  File ""/home/srv_jaxqa/miniconda3/envs/promotion_tool_38/lib/python3.8/site-packages/django/core/management/__init__.py"", line 413, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File ""/home/srv_jaxqa/miniconda3/envs/promotion_tool_38/lib/python3.8/site-packages/django/core/management/base.py"", line 354, in run_from_argv
    self.execute(*args, **cmd_options)
  File ""/home/srv_jaxqa/miniconda3/envs/promotion_tool_38/lib/python3.8/site-packages/django/core/management/commands/runserver.py"", line 61, in execute
    super().execute(*args, **options)
  File ""/home/srv_jaxqa/miniconda3/envs/promotion_tool_38/lib/python3.8/site-packages/django/core/management/base.py"", line 398, in execute
    output = self.handle(*args, **options)
  File ""/home/srv_jaxqa/miniconda3/envs/promotion_tool_38/lib/python3.8/site-packages/django/core/management/commands/runserver.py"", line 96, in handle
    self.run(**options)
  File ""/home/srv_jaxqa/miniconda3/envs/promotion_tool_38/lib/python3.8/site-packages/django/core/management/commands/runserver.py"", line 103, in run
    autoreload.run_with_reloader(self.inner_run, **options)
  File ""/home/srv_jaxqa/miniconda3/envs/promotion_tool_38/lib/python3.8/site-packages/django/utils/autoreload.py"", line 639, in run_with_reloader
    exit_code = restart_with_reloader()
  File ""/home/srv_jaxqa/miniconda3/envs/promotion_tool_38/lib/python3.8/site-packages/django/utils/autoreload.py"", line 256, in restart_with_reloader
    args = get_child_arguments()
  File ""/home/srv_jaxqa/miniconda3/envs/promotion_tool_38/lib/python3.8/site-packages/django/utils/autoreload.py"", line 225, in get_child_arguments
    if __main__.__spec__ is not None and __main__.__spec__.parent:
AttributeError: module '__main__' has no attribute '__spec__'
}}}
The work around for this is to explicitly call the actual manage.py inside the EGG-INFO like this:
{{{
~/miniconda3/envs/promotion_tool_38/lib/python3.8/site-packages/promotion_tool-1.0.28-py3.7.egg/EGG-INFO/scripts/manage.py runserver 10.12.123.45:8183
}}}
After reverting the changes locally found in this method ""get_child_arguments"" in django/utils/autoreload.py in the commit above, the command {{{miniconda3/envs/promotion_tool_38/bin/manage.py runserver 10.12.123.45:8183}}} works again, or if inside the conda env then just {{{manage.py runserver 10.12.123.45:8183}}} works. "	Bug	closed	Core (Management commands)	3.2	Release blocker	fixed		William Schwartz	Accepted	1	0	0	0	0	0
