Hilfe für Sphinx

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
bennnil
User
Beiträge: 36
Registriert: Dienstag 16. August 2011, 13:00

Lieber cofi,
vielen Dank für die Links.
Ich würde am liebsten die aktuellste Version haben ;). Allerdings bekomme ich das nicht so ganz hin, daraus eine LaTeX Datei zu erzeugen, geschweige denn eine PDF Datei. Zum Ausdrucken wäre das allerdings etwas besser. Die HTML Datei zu erzeugen ist kein Problem. Meine Frage ist also: Bin ich dafür zu blöd, kann man nicht einfach aus den bereitgestellten Daten ein PDF erstellen, oder liegt das Problem tatsächlich bei dem Programm?
Es wäre Klasse, wenn ihr mir nochmal helfen könntet :)
BlackJack

@bennnil: Wo liegt denn das Problem genau? Was für Fehlermeldungen bekommst Du? Welche LaTeX-Distribution verwendest Du?
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Unter Linux/Unixen:

Code: Alles auswählen

cd sphinx/doc
make latex
cd _build/latex
make all-pdf
Hier ist das fertige PDF: https://dl.dropbox.com/s/lfmij5c53pj65l ... x.pdf?dl=1
bennnil
User
Beiträge: 36
Registriert: Dienstag 16. August 2011, 13:00

Da fragst du mich Sachen :D
ich starte per make latex Befehl in der Kommandozeile. Dann kommt erst ne Menge Text und dann die folgende Fehlermeldung:
Exception occurred:
File "C:\Python27\lib\site-packages\sphinx-1.0.7-py2.7.egg\sphinx\writers\late
x.py", line 1024, in visit_target
next = node.parent.parent[node.parent.parent.index(node.parent)]
AttributeError: 'NoneType' object has no attribute 'index'

Ich habe keine Ahnung was ich falsch mache :(

Danke für deine Hilfe :)
bennnil
User
Beiträge: 36
Registriert: Dienstag 16. August 2011, 13:00

Hey ich habe gerade in der Dokumentation gelesen, dass Sphinx nativ verschiedene Sprachen unterstützt. Wäre es schwierig die Dokumentation, die cofi mir geschickt hat nochmal mit dem Parameter de zu erstellen (also auf deutsch zu übersetzen)?
Oder bringt das nicht viel, da da nur Kauderwelsch rauskäme ?

Bevor ich es vergesse: Allerherzlichsten Dank cofi für deine schnelle Unterstützung. Arbeite (leider) auf einer Windows Maschiene :/
BlackJack

@bennnil: Das verschiedene Sprachen unterstützt werden bedeutet nicht, dass Sphinx englische Dokumentation, lesen, verstehen, und dann in andere Sprachen übersetzen kann. Das bezieht sich auf die generierten Texte wie „Inhalt” statt „Content” oder „weiter”/„zurück” statt „next”/„previous”.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Da kommt keine deutsche Dokumentation raus. Es werden nur die Sphinx Texte auf Deutsch, statt auf Englisch ausgegeben. In der HTML Dokumentation ist das zum Beispiel "weiter" oder "Nächstes Thema", nichts weltbewegendes.

Aber damit du weisst wies geht: In der conf.py ein `language = "de"` hinzufuegen.

Edit: Zu langsam :roll:
bennnil
User
Beiträge: 36
Registriert: Dienstag 16. August 2011, 13:00

Achso :) okay danke euch Beiden für die wirklich schnelle Antwort :)
bennnil
User
Beiträge: 36
Registriert: Dienstag 16. August 2011, 13:00

Ich hätte nochmal eine Frage:
Wie kann ich Sphinx dazu bringen Umlaute und ß auszugeben und nicht immer mit ner Warnung und dann nem ? zu reagieren ?

Danke :)
BlackJack

@bennnil: Wie lautet denn die Warnung und mit welcher Kodierung werden die Eingabetexte gespeichert?

Edit: Sollte das etwas anderes als UTF-8 sein, musst Du das in der Konfiguration angeben. Oder besser: die Eingabetexte als UTF-8 speichern.
bennnil
User
Beiträge: 36
Registriert: Dienstag 16. August 2011, 13:00

Code: Alles auswählen

C:\Python27\Scripts\Dokumentation\source\index.rst:6: WARNING: undecodable sourc
e characters, replacing with "?": 'Einf>>>\xfc<<<hrung in Sphinx'
Das ist die Warnung.

Was muss ich also in der conf.py angeben, damit er das nicht mehr macht?

eigendlich steht bei mir

Code: Alles auswählen

# -*- coding: utf-8 -*-
drin
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Speicherst Du die Datei denn auch wirklich in utf-8?
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
BlackJack

@bennnil: Und wo steht der Kommentar? In der `conf.py`? Dann gilt der für diese Datei und dort auch nur für Unicode-Literale, also Zeichenketten mit einem u davor wie zum Beispiel u'Hällö' und natürlich muss die Datei dann auch tatsächlich UTF-8-kodiert gespeichert werden.

Es sieht so aus, als wenn die `index.rst` nicht UTF-8 kodiert gespeichert ist, denn da ist ja nur ein Byte für das ü in Einführung zu sehen.
bennnil
User
Beiträge: 36
Registriert: Dienstag 16. August 2011, 13:00

Mein Fehler war es in ASCII abzuspeichern :/ Wie dumm aber danke für die Tipps :)
Hier ist noch ein Problem:

Code: Alles auswählen

Installation von Sphinx
-----------------------
Die einfachste Installation von Sphinx läuft über **EasyInstall**, da alle benötigten Versionen direkt heruntergeladen werden.

#. EasyInstall aus dem Internet herunterladen (\`<http://www.python.org/download/releases/>`_)\ (auf richtige Version achten)
#. Ins vorgeschlagene Verzeichnis installieren.
#. *easy_install –U* Sphinx in die Kommandozeile eintippen.
#. Umgebungsvariable *C:\\Python27\\Scripts;* setzen.
edit: Easyinstall ist nun EasyInstall ;)
Ich möchte bitte diesen klamauk mit `<>` nicht angezeigt bekommen. Wie geht das?
Zuletzt geändert von bennnil am Mittwoch 24. August 2011, 12:23, insgesamt 1-mal geändert.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Das Tool heißt 'Easy Install' oder 'EasyInstall' ;-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
lunar

@bennnil: Für Kommandos sollte man auch besser `` statt * nutzen (also ``easy_install -U Sphinx`` statt *easy_install -U*).

Edit: Falsche Antwort entfernt, hatte mich verlesen :oops:
Zuletzt geändert von lunar am Mittwoch 24. August 2011, 13:48, insgesamt 1-mal geändert.
BlackJack

@bennnil: Wenn Du die reST-Syntax nicht im erzeugten Dokument haben möchtest, solltest Du sie nicht mit '\' davor ”schützen” als reST-Syntax interpretiert zu werden. Im Falle so einer kompletten URL kannst Du die Auszeichnung aber auch ganz weglassen, denn http://… sollte automatisch erkannt und entsprechend als Link gesetzt werden.

Edit: Ergänzend zu Lunar: Sphinx kennt spezielle Auszeichnungen für so einige Sachen die in technischen, computer-bezogenen Dokumentationen vorkommen können, unter anderem auch für Kommandozeileneingaben, Programmnamen, Beispieleingaben, und so weiter. Siehe Inline Markup.
bennnil
User
Beiträge: 36
Registriert: Dienstag 16. August 2011, 13:00

Danke für die Tipps :) ich dachte iwo gelesen zu haben das ich die () Klammern iwie durch \ vom parser ignorieren lassen muss ... aber kann auch iwas anderes gewesen sein :D

Jetzt funkt es auf jeden Fall... was mich zu meiner nächsten Frage bringt :D

Ich möchte gerne die offizielle Dokumentation von Sphinx verlinken. Das Optimum wäre, dass die Datei eingebunden wird und ggf. bei Internet die Internetseite von der Doku geöffnet wird. Gibt es da ne Möglichkeit? Sollte das nicht funktionieren, wäre es klasse, wenn ihr mir nur sagen könntet, wie ich die Dokumentation verlinke ... iwie bekomme ich das nicht hin ... muss ich da zuerst ein html Dokument draus erstellen oder wie geht das ?!

Wäre euch sehr dankbar für eure Hilfe :)
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Meinst Du diese Seite? Wenn ja musst Du die doch nur als Hyperlink referenzieren... ansonsten kapiere ich Deine Frage nicht!
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
bennnil
User
Beiträge: 36
Registriert: Dienstag 16. August 2011, 13:00

Ja das weiß ich wie das geht aber wie geht das, wenn ich die HTML Datei habe und sie lokal auf meinem PC liegt. Muss die dann in .static gepackt werden? Und wie kann ich auf die Datei verweisen ?

Gibt es da relative Pfadangaben? Weil im Besten Fall soll das auf verschiedenen Pcs laufen.
Antworten