#32783: Recent commit causes issues when running manage.py as a script in a
conda
env. Django 3.2.3
---------------------------------------------+------------------------
Reporter: JonathanNickelson | Owner: nobody
Type: Bug | Status: new
Component: Utilities | Version: 3.2
Severity: Normal | Keywords:
Triage Stage: Unreviewed | Has patch: 0
Needs documentation: 0 | Needs tests: 0
Patch needs improvement: 0 | Easy pickings: 1
UI/UX: 0 |
---------------------------------------------+------------------------
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.
--
Ticket URL: <https://code.djangoproject.com/ticket/32783>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/060.0cd75b7432560fccb5ce91c22ac3b84e%40djangoproject.com.