GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Schwierigkeiten mit Python während der Installation von YouCompleteMe in vim

Ich habe das Build-System von YouCompleteMe überprüft und es verwendet ein benutzerdefiniertes Build-Skript, das das Python-Modul distutils verwendet um die Pfade zu Pythons Bibliothek und Include-Verzeichnissen zu finden. Ihre /usr/local/ Die Installation von Python ist wahrscheinlich in Ihrem PATH enthalten Variable vor dem offiziellen /usr Installation, also einfach python ausführen führt wahrscheinlich Ihre benutzerdefinierte Installation aus und erzeugt distutils seine Verzeichnisse zurückgeben.

Um zu überprüfen, ob dies wahr ist, führen Sie which python aus . Ich nehme an, es wird so etwas wie /usr/local/bin/python zurückgeben .

An diesem Punkt sehe ich mehrere Optionen (in der Reihenfolge ihrer Präferenz).

  1. Versuchen Sie, das Installationsskript von YCM auszuführen, indem Sie explizit angeben, welche ausführbare Python-Datei es ausführen soll:/usr/bin/python ./install.py --clang-completer

    Wenn Sie zusätzliche Vervollständiger mit YCM verwenden, sollten Sie die entsprechenden Flags in die obige Zeile einfügen (z. B. --js-completer für die JavaScript-Vervollständigung).

  2. Bearbeiten Sie das Skript third_party/ycmd/build.py im Plugin-Verzeichnis von YouCompleteMe, um die Pfade für Ihre benutzerdefinierte Python-Installation fest zu codieren. Beispielsweise könnten Sie den vorhandenen FindPythonLibraries ersetzen Funktion mit folgendem:

    def FindPythonLibraries():
        return ('/usr/lib/python2.7/config-x86_64-linux-gnu/libpython2.7.so',
                '/usr/include/python2.7')
    

    Beachten Sie, dass dies die Aktualisierung von YouCompleteMe erschwert, da Sie sicherstellen müssen, dass es nicht überschrieben wird, wenn Sie seine Quelle aktualisieren.

  3. Ersetzen Sie Ihre benutzerdefinierte Installation von Python durch eine, die als gemeinsam genutzte Bibliothek erstellt wurde. Die Details dazu hängen davon ab, wie Sie die vorhandene Python-Installation überhaupt installiert haben. Sie können überprüfen, ob Sie es über ein Paket installiert haben, indem Sie dpkg -S /usr/local/lib/python2.7/config/libpython2.7.a verwenden . Dieser Befehl teilt Ihnen mit, welches Paket diese Datei installiert hat, es sei denn, Sie haben es manuell installiert (unter Umgehung des Paketmanagers).
  4. Entfernen Sie Ihren benutzerdefinierten /usr/local Python-Installation, während Sie sicherstellen, dass Sie Python aus den offiziellen Repositories installiert haben (Pakete python2.7 und libpython2.7 ).

Auf lange Sicht wären Sie wahrscheinlich besser dran, wenn Sie die offiziellen Python-Pakete verwenden.


Linux
  1. ConfigParser-Installationsfehler – python setup.py egg_info fehlgeschlagen mit Fehlercode 1 [Gelöst]

  2. Python.h kann nicht kompiliert werden – Websockify-Installationsfehler

  3. Python 3.3.2-Installation?

  4. Die Python.h-Datei kann während der Installation von Watchman nicht gefunden werden

  5. pytest läuft mit einer anderen Version von Python

Deepin 20.1 Installationsschritte mit Screenshots

So führen Sie einen Shell-Befehl mit Python aus

So installieren Sie Python 2.7 unter CentOS 7.1 oder 6.7 mit Anaconda

Installation und erste Schritte mit Git

CentOS / RHEL 7 installieren (Schritt für Schritt mit Screenshots)

Arbeiten mit dem Vim-Editor (Text-Editor)