Opened 9 years ago

Closed 9 years ago

Last modified 9 years ago

#25602 closed Bug (invalid)

Django breaks sphinx

Reported by: Aristotelis Mikropoulos Owned by: nobody
Component: Uncategorized Version: 1.8
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 (last modified by Aristotelis Mikropoulos)

I try to use sphinx-apidoc on my Django app, but when I run "make html" I get an error. I have tried everything I found as solutions, but with no luck.

conf.py https://bpaste.net/show/c10e9d3877bf

traceback https://bpaste.net/show/d2451bcd91fd

the app is this one https://github.com/amikrop/django-uaccounts/ and I put the docs directory right in the root

Change History (5)

comment:1 by Aristotelis Mikropoulos, 9 years ago

Description: modified (diff)

comment:2 by Tim Graham, 9 years ago

Resolution: invalid
Status: newclosed

I'd guess you need to call django.setup() somewhere as described in the first question in the Applications Troubleshooting.

Please see TicketClosingReasons/UseSupportChannels if you need further help.

comment:3 by Aristotelis Mikropoulos, 9 years ago

django.setup() did not help no matter where I put it in conf.py
I would appreciate further investigation/help.

django.setup() after settings.configure(): https://dpaste.de/aekd

django.setup() before settings.configure(): https://bpaste.net/show/730b6345ee5e

comment:4 by Aristotelis Mikropoulos, 9 years ago

After all I managed to do it by monkeypatching FileDescriptor's

 __get__

in conf.py. First, I needed to be in a Django project, not enough to just be in a "projectless" app. Second, it needed manual setting of environment variable DJANGO_SETTINGS_MODULE, which settings.configure() couldn't do. And third it needed the monkeypatch. These were the lines needed in conf.py:

sys.path.insert(0, os.path.abspath('..'))
os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings'

import django
django.setup()

from django.db.models.fields.files import FileDescriptor
FileDescriptor.__get__ = lambda self, *args, **kwargs: self

I mentioned it for future reference and it would be nice if it could all be documented together.

comment:5 by Tim Graham, 9 years ago

I think the issue with FileDescriptor will be fixed in Django 1.10 (#21042).

Note: See TracTickets for help on using tickets.
Back to Top