vim konnte die Bibliothek python27.dll nicht laden

11

Ich benötige Windows 7 + vim + python zum Schreiben von vim-Plugins.

:python print("hello")
E370: Could not load library python27.dll
E263: Sorry, this command is disabled, the Python library could not be loaded.

Versuchte alles:

  • vim neu installiert
  • deinstallierte alle meine 64-Bit-Python-Versionen und installierte 32-Bit-Versionen
  • vim erneut installiert
  • Computer neu gestartet
  • Locher Schreibtisch und Tastatur
  • Computer neu gestartet
Andriy Drozdyuk
quelle
Für alle, die das gleiche Problem haben: Die Installation von "cream" behebt das Problem: cream.sourceforge.net Ja - diese Frage wird wahrscheinlich geschlossen - aber Tatsache ist, dass es im Web noch keine Lösung dafür gibt.
Andriy Drozdyuk
Die Beantwortung Ihrer eigenen Frage ist gut, aber posten Sie sie als Antwort, nicht als Kommentar, und akzeptieren Sie sie nach zwei Tagen.
Kompilieren Sie es mit Python-Unterstützung
Eric Fortis
Hm ... Ich kompiliere es nicht, sondern lade ein Installationsprogramm herunter.
Andriy Drozdyuk
@drozzy: Hier gibt es Installationsprogramme: bintray.com/veegee/generic/vim_x64 . Hatte das gleiche Problem wie Sie und wollte Vim nicht alleine bauen. Einfach!
eckes

Antworten:

13

Diagnose

:versionzeigt Ihnen, ob Sie 32bit vim oder 64bit
python.exehaben, zeigt Ihnen, ob Sie 32bit oder 64bit Python haben.

Auflösung

Jetzt liegt es an Ihnen, entweder zu wählen:

  • 32bit vim + 32bit python oder

  • 64bit vim + 64bit python

Andernfalls funktioniert es nicht, sich über den von Ihnen angegebenen Fehler zu beschweren.

NB Das neueste 64-Bit-Vim kann nicht mehr von der Download-Seite heruntergeladen werden. Aus irgendeinem mysteriösen Grund gibt es jetzt eine neue spezielle Seite dafür:

http://vim.wikia.com/wiki/Where_to_download_Vim

Antony Hatchkins
quelle
5

Sind Sie sicher, dass Sie dieselbe Version von 32-Bit-Python installiert haben, nach der Vim gesucht hat? Ich sehe keinen Grund, warum dies Ihr Problem nicht behoben hätte, es sei denn, Sie hätten irgendwie eine gvim-Exe ohne Python-Unterstützung erstellt. Wie auch immer, ich hatte genau dieses Problem und das Offensichtliche für mich war, dass meine Python-DLL x64 war, während ich 32-Bit-Vim hatte. Die Lösung für mich war einfach, eine 64-Bit-Version von Vim zu erstellen. Ich bevorzuge ein Upgrade von Vim gegenüber einem Downgrade von Python. Die Argumente, die ich an die make-Datei gesendet habe, waren:

nmake -f Make_mvc.mak GUI=yes CPU=AMD64 PYTHON=C:\Python27 DYNAMIC_PYTHON=yes PYTHON_VER=27

Ich habe dann meine ursprüngliche 32-Bit-Datei gvim.exe durch die 64-Bit-Version ersetzt, die ich gerade erstellt habe. Alles hat perfekt funktioniert. Wenn Sie sich Sorgen über den Aufwand des Builds machen, war es nicht sehr einfach, die Compiler von Visual Studio 2010 zu verwenden und make über die entsprechende Visual Studio-Eingabeaufforderung (x64 cross tools) auszuführen. Bei Bedarf kann ich weitere Anweisungen senden.

wir s
quelle
Ich war genau in deiner Situation. da ich vim nicht neu kompilieren wollte, habe ich die 32bit version von python 2.7 installiert und jetzt funktioniert gvim wie ein zauber!
Apelliciari
Es gibt eine vorkompilierte x64-Version (verlinkt von der vim.org-Downloadseite), deren Installation das Problem behebt.
Antony Hatchkins
2

Ok, hier geht es: Aus irgendeinem Grund behebt die Installation von "cream" das Problem: cream.sourceforge.net.

:python print("hello")
hello

Interessanterweise enthält "cream" eine reguläre Version von "gvim" - also kann ich genau das verwenden.

Andriy Drozdyuk
quelle
2

Eine alternative Lösung, die ich nicht gesehen habe, hat für mich funktioniert.

1. Stellen Sie, wie in den anderen Antworten angegeben, sicher, dass die Python-Version mit dem 32/64-Bit übereinstimmt.

2. fügen Sie set pythondll=FULL_PATH_TO_THE_APPROPRIATE_PYTHON.DLLzu Ihrem .vimrc

zum Beispiel: set pythondll=E:\\extern\\python27-32\\python27.dll

3. Laden Sie vimrc neu, indem Sie vim entweder schließen und neu starten oder verwenden:source $MYVIMRC

andere Leckerbissen:

  • um herauszufinden, wo sich Ihre .vimrc befindet :echo $MYVIMRC

  • um Ihre .vimrc einfach zu bearbeiten :e $MYVIMRC

  • um zu sehen, worauf es dann eingestellt :optionsist /pythondlloder:set pythondll?

  • um zu testen, ob es funktioniert hat, :py import sysgefolgt von:py print('Happy')

Mehr Info:

:help python-dynamic

:help pythondll

:help options

:help source

:help $MYVIMRC

bearbeiten:

Jon Plotner
quelle
Unter Vim 8.0 funktioniert dies nur ohne Anführungszeichen (') oder doppelte Anführungszeichen ("). Offensichtlich sollte Ihr Pfad keine Leerzeichen enthalten: /
Boris Brodski
guter Punkt BorisBrodski. Ich habe die Anführungszeichen in Backticks geändert, um Verwirrung zu vermeiden.
Jon Plotner
1

Ich hatte dieses Problem mit VIM 7.2 bei der Suche nach der python25.dll. Dies wurde behoben, indem der Pfad zur Umgebungsvariablen PATH der Datei python25.dll (c: \ python25 \ auf meinem System) hinzugefügt wurde.

Willem van Ketwich
quelle
0

Wenn Sie Ihre 64-Bit - Version von Python halten wollen, in diesem Moment, eine einfach zu installierende und aktuellste Version von Vim64 für Windows finden sich hier . Es deinstalliert sogar Ihr vorhandenes 32-Bit-GVIM für Sie.

Aurel Wisse
quelle
0

Es gibt eine ähnliche Frage: Google-Laufwerksfehler: python27.dll

Problem ist in python27.dll Abhängigkeiten. Sie können dies mit dem Dienstprogramm dependencywalker überprüfen. Fehlende DLL ist "msvcr90.dll". Es wird mit "Microsoft Visual C ++ 2008 Redistributable Package" geliefert und Windows 7 enthält es nicht einmal bei allen installierten Updates. Sie sollten dieses Paket manuell installieren von:

Windows 7 x64: https://www.microsoft.com/en-us/download/details.aspx?id=15336

Windows 7 32-Bit: https://www.microsoft.com/en-US/download/details.aspx?id=29

Eugene Belyakov
quelle
OP hatte bereits eine bessere Lösung
yass