Die Python 2-Unterstützung von Mercurial wird wahrscheinlich in nicht allzu ferner Zukunft nachlassen. Als ich während der Erstellung auf Python 3.8 migrierte, funktionierte sie nicht mehr hervorragend.
Die ursprüngliche index.cgi sieht so aus, und wenn ich diese Python in python3 umschreibe, 500: Internal Server Error.
#!/home/xxxx/local/bin/python
from mercurial import hgweb
from cgitb import enable
enable()
hgweb.hgweb("/home/xxxx/hg", "xxxx-hg").run()
Im Apache-Fehlerprotokoll wird "Name des Antwortheaders" <! - "Enthält ungültige Zeichen und bricht die Anforderung ab". Es scheint, dass cgitb etwas falsch macht. Wenn Sie es löschen, wird eine Stapelverfolgung in das Apache-Fehlerprotokoll ausgegeben. Die Fehlermeldung von "Mercurial unterstützt nur codierte Zeichenfolgen" wird zu hmm und "hgweb.hgweb" ("/ home / xxxx / hg" .encode ("utf-8"), "xxxx-hg". Schreiben Sie in ".encode ('utf-8')). Run ()" und überprüfen Sie den Vorgang.
Wenn Sie darüber nachdenken, müssen Sie nicht codieren, und der endgültige Quellcode wird unten festgelegt.
#!/home/xxxx/local/bin/python3
from mercurial.hgweb import hgweb
hgweb(b"/home/xxxx/hg", b"xxxx-hg").run()
Verwandte: Streunende Build von Python 3 auf Sakuras Mietserver (Hinweis)
Recommended Posts