vim non ha potuto caricare la libreria python27.dll


11

Ho bisogno di Windows 7 + vim + python per scrivere plugin di Vim.

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

Ho provato di tutto:

  • reinstallato vim
  • ho disinstallato tutte le mie versioni di python a 64 bit e quelle a 32 bit installate
  • reinstallato nuovamente vim
  • computer riavviato
  • scrivania e tastiera perforate
  • computer riavviato

Per tutti coloro che hanno lo stesso problema: l'installazione di "cream" risolve il problema: cream.sourceforge.net Sì - questa domanda probabilmente verrà chiusa - ma il fatto è che non esiste ancora una soluzione a questo da nessuna parte sul web.
Andriy Drozdyuk,

Rispondere alla tua domanda è positivo, ma pubblicalo come risposta, non come commento, quindi accettalo dopo due giorni.

compilarlo con il supporto Python
Eric Fortis,

Hm ... Non lo sto compilando, ma piuttosto sto scaricando un programma di installazione.
Andriy Drozdyuk,

@drozzy: ci sono installatori qui: bintray.com/veegee/generic/vim_x64 . Ho avuto lo stesso problema e non volevo costruire Vim da solo. Semplice!
Controlla il

Risposte:


13

Diagnostica

:versionti mostrerà se hai 32 bit vim o 64 bit
python.exeti mostrerà se hai 32 bit o 64 bit python.

Risoluzione

Ora tocca a te scegliere:

  • 32 bit vim + 32 bit python o

  • 64 bit vim + 64 bit python

altrimenti non funzionerà lamentandosi dell'errore che hai citato.

NB Gli ultimi 64 bit vim non possono più essere scaricati dalla pagina di download. Per qualche misteriosa ragione ora c'è una nuova pagina speciale per questo:

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


5

Sei sicuro di aver installato la stessa versione di Python a 32 bit che Vim stava cercando? Non vedo alcun motivo per cui questo non avrebbe risolto il tuo problema, a meno che tu non avessi in qualche modo un ex gvim costruito senza il supporto di Python. Comunque, ho avuto esattamente questo problema, e la cosa ovvia per me era che il mio python dll era x64, mentre avevo un bit a 32 bit. La soluzione per me era semplicemente quella di creare una versione a 64 bit di Vim. Preferisco di gran lunga aggiornare Vim al downgrade di Python. Gli argomenti che ho inviato al file make erano:

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

Ho quindi sostituito il mio originale gvim.exe a 32 bit con quello a 64 bit che ho appena creato. Tutto ha funzionato perfettamente. Se sei preoccupato per la seccatura della build, non esserlo: è stato molto semplice utilizzare i compilatori di Visual Studio 2010 ed eseguire make dal prompt dei comandi di Visual Studio appropriato (strumenti x64 cross). Posso inviare ulteriori istruzioni se necessario.


ero esattamente nella tua situazione. dato che non volevo ricompilare vim, ho installato la versione a 32 bit di python 2.7 e ora gvim funziona come un incantesimo!
apelliciari,

Esiste una versione x64 precompilata (collegata dalla pagina di download di vim.org), l'installazione risolve il problema.
Antony Hatchkins,

2

Ok eccolo: per qualche motivo l'installazione di "cream" lo risolve: cream.sourceforge.net.

:python print("hello")
hello

È interessante notare che "crema" include una versione normale di "gvim" - quindi posso usarlo.


2

Una soluzione alternativa che non ho visto menzionata che ha funzionato per me.

1. come indicato dalle altre risposte, assicurarsi che la versione di Python corrisponda al 32/64 bit.

2. aggiungi set pythondll=FULL_PATH_TO_THE_APPROPRIATE_PYTHON.DLLal tuo .vimrc

per esempio: set pythondll=E:\\extern\\python27-32\\python27.dll

3. ricaricare vimrc chiudendo e riavviando vim o usando:source $MYVIMRC

altri bocconcini:

  • per scoprire dov'è il tuo .vimrc :echo $MYVIMRC

  • per modificare facilmente il tuo .vimrc :e $MYVIMRC

  • per vedere a cosa è impostato :optionsallora /pythondllo:set pythondll?

  • per provare che ha funzionato :py import sysseguito da:py print('Happy')

Ulteriori informazioni:

:help python-dynamic

:help pythondll

:help options

:help source

:help $MYVIMRC

modificare:


Su Vim 8.0 funziona solo senza virgolette (') o virgolette doppie ("). Ovviamente, il percorso non deve contenere spazi: /
Boris Brodski

buon punto BorisBrodski. Ho cambiato le virgolette in backtick per aiutare con qualsiasi confusione.
Jon Plotner il

1

Ho avuto questo problema con VIM 7.2 cercando il python25.dll. Questo problema è stato risolto aggiungendo il percorso al file python25.dll (c: \ python25 \ sul mio sistema) alla variabile d'ambiente PATH.


0

Se vuoi conservare la tua versione a 64 bit di Python, in questo momento puoi trovare una versione facile da installare e recente di Vim64 per Windows qui . Disinstalla anche il tuo gvim a 32 bit esistente per te.


0

C'è una domanda simile: errore dell'unità Google: python27.dll

Il problema è nelle dipendenze python27.dll. Puoi verificarlo tramite l'utility dependencywalker. La dll mancante è "msvcr90.dll". Viene fornito con "Pacchetto ridistribuibile di Microsoft Visual C ++ 2008" e Windows 7 non lo include nemmeno con tutti gli aggiornamenti installati. È necessario installare questo pacchetto manualmente da:

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

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


OP aveva già una soluzione migliore
yass
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.