Opened 2 years ago

Closed 2 years ago

Last modified 2 years ago

#19238 closed Bug (invalid)

manage.py does not use python3

Reported by: Cybjit Owned by: nobody
Component: Python 3 Version: 1.5-alpha-1
Severity: Normal Keywords:
Cc: Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

I installed django using python3, but by default manage.py uses python.

$ django-admin.py startproject foo
$ cd foo/
$ ./manage.py startapp bar
Traceback (most recent call last):
  File "./manage.py", line 8, in <module>
    from django.core.management import execute_from_command_line
ImportError: No module named django.core.management
$ sed -i -e 's/env python/env python3/' manage.py
$ ./manage.py startapp bar
$

Change History (2)

comment:1 Changed 2 years ago by claudep

  • Needs documentation unset
  • Needs tests unset
  • Patch needs improvement unset
  • Resolution set to invalid
  • Status changed from new to closed

When you are running ./manage.py, you implicitely call the current default python executable. If you'd like to force a non-default python, specify it on the command line (python3 manage.py ...). And more generally, I would suggest to make use of virtualenv, where you can specify the default python version for each of your projects separately.

comment:2 Changed 2 years ago by aaugustin

It appears that python invokes Python 2 and python3 invokes Python 3 on your system.

You have the following options:

  • 1) use a virtualenv created with Python 3 — the Python binary copied in the virtualenv will be used.
  • 2) make Python 3 the default Python, so that env python invokes Python 3 (see your OS' manual),
  • 3) use python3 manage.py — if you want a non-default Python, you have to say it,

Changing the sheebang like you suggest is incorrect because it's OS-dependent. It could fix your problem on your development system but break it on your production environment.

Selecting the correct Python binary is the job of env. Options 1) and 2) above take advantage of that.

Version 0, edited 2 years ago by aaugustin (next)
Note: See TracTickets for help on using tickets.
Back to Top