2016-04-18 3 views
0

Ich benutze Ubuntu 12.04, Python 2.7.3.
Ich habe einen Segmentierungsfehler in einer C Erweiterung, die ich gemeinsam geschrieben habe. Es scheint von einem Zeiger zu kommen, der nicht richtig frei war.Fragen zum Kompilieren von Python im Debug-Modus

Ich verwende dann valgrind, um Speicherlecks zu finden. Nach diesem answer, muss ich Python im Debug-Modus kompilieren, um eine valgrind freundliche Version von Python zu erhalten und seine irrelevanten Berichte loszuwerden.

Wie kompiliert Python im Debug-Modus?

Obwohl die Antwort, die ich verlinkte, einen Teil dieser Frage beantwortet, liefert sie mir nicht genügend Details.
In der Tat möchte ich verstehen, was passiert, nicht nur Dinge an einigen Stellen eingeben, weil "wer weiß? Es könnte funktionieren".

Daher würde ich gerne wissen:

  • Was Python zu kompilieren herunterladen?
  • Wo geben Sie ./configure ein?
  • Was wird mit meiner aktuellen Installation passieren? Wird es mein System beeinflussen?
    Ich habe an vielen Stellen gelesen, dass viele Prozesse auf Ubuntu 12.04 sind von Python verwaltet und ich will nichts durcheinander bringen.

Ich versuche auch von Yair Daon Kommentar des genannten Antworten auf die Fragen zu finden:

  • Haben Sie Python neu kompilieren, wenn Sie seine Debug Kompilierung fertig sind mit?

    • Wenn ja, wie kompiliert Python zurück zu seinem Standardmodus?
+0

Die Frage "Wie kompiliere ich Python im Debug-Modus" wird in der akzeptierten Antwort auf die Frage gegeben, die Sie verknüpft haben. Wenn diese Antwort für Ihre Bedürfnisse nicht ausreicht, müssen Sie sie genauer erklären. – Chris

+0

Es wird nur ein Befehl geschrieben. Ich lese die Antwort und ich weiß nicht, was ich herunterladen soll oder wo ich diesen Befehl eingeben soll, noch was mit meiner vorherigen Installation von Python passieren wird (ich möchte mich nicht mit meiner aktuellen Installation von Python anlegen). Deshalb frage ich hier nach einer vollständigen Erklärung. – DRz

+2

Vielen Dank für die Aktualisierung Ihrer Frage. IMO, das Beste, was Sie machen können, ist der offizielle [Entwicklerleitfaden] (https://docs.python.org/devguide/). Sie werden wahrscheinlich das meiste von dem, was Sie brauchen, unter der Rubrik "Quick Start" und auf der [Setup-Seite] (https://docs.python.org/devguide/setup.html#setup) finden. Wenn Sie ein neues Python in Ihrem Home-Verzeichnis erstellen, sollte es nicht mit Ihrem System Python in Konflikt stehen. Stellen Sie sicher, dass Sie 'sudo make install' oder ähnliches nicht ausführen (wirklich, abgesehen von der Installation von Systembibliotheken usw. mit' apt-get' sollten Sie 'sudo' überhaupt nicht benötigen). – Chris

Antwort

1

Hier sind einige Eingänge für jeden, der versucht Python im Debug-Modus auf Ubuntu zu kompilieren:

  1. Laden Sie die Version, die Sie aus dem python website benötigen.
  2. Entpacken Sie es mit tar -xf und gehen Sie in das neue Verzeichnis.

    Beispiel:
    tar -xf Python2.7.3.tgz cd Python-2.7.3

  3. Konfigurieren Sie Ihr Python-Installationsprogramm für die Debug-Modus, ./configure --with-pydebug verwenden. Es wird eine Makefile erstellen, die Sie nur ausführen müssen.

  4. Kompilieren Sie die Quellen, um Ihren neuen Python-Interpreter zu erstellen, indem Sie Makefile verwenden: make install.

Wenn Sie einen neuen Interpreter erstellen, bleibt das Python Ihres Systems sauber.

Wenn Sie es kompiliert mit --prefix=/home/username/workspace/project/python/, können Sie nun Ihr Skript mit Ihrem neuen Python-Interpreter mit:

/home/username/workspace/project/python/bin/python script.py

Oder Sie können auch die Shebang-Zeile #!/home/username/workspace/project/python/bin/python am Anfang des Skripts hinzufügen, Geben Sie ihm das Ausführungsrecht (sudo chmod 764 script.py) und führen Sie es einfacher mit Ihrem neuen Python-Interpreter aus, indem Sie ./script.py eingeben.

Hinweis: Vielleicht möchten Sie Python-Dokumentation für weitere konfigurieren/kompilieren Flags (wie --prefix/-j, danke Chris für den Link).