vim não pôde carregar a biblioteca python27.dll

11

Preciso do Windows 7 + vim + python para escrever plugins do vim.

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

Tentei de tudo:

  • reinstalado o vim
  • desinstalou todas as minhas versões python de 64 bits e instalou as de 32 bits
  • reinstalado o vim novamente
  • computador reiniciado
  • mesa e teclado perfurados
  • computador reiniciado
Andriy Drozdyuk
fonte
Para todos que têm o mesmo problema: a instalação de "creme" corrige: cream.sourceforge.net Sim - essa pergunta provavelmente será encerrada - mas o fato é que ainda não há solução para isso em nenhum lugar da web.
Andriy Drozdyuk
Responder a sua própria pergunta é bom, mas publique-a como resposta, não como comentário, e aceite-a após dois dias.
compile-o com suporte a python
Eric Fortis
Hum ... eu não estou compilando, mas sim baixando um instalador.
Andriy Drozdyuk
@drozzy: não são instaladores aqui: bintray.com/veegee/generic/vim_x64 . Tive o mesmo problema que você e não queria criar o Vim por conta própria. Simples!
Eckes

Respostas:

13

Diagnóstico

:versionirá mostrar se você tem 32 bits vim ou 64 bits
python.exe, se você tem 32 bits ou 64 bits python.

Resolução

Agora cabe a você escolher:

  • 32 bits vim + 32 bits python ou

  • 64 bits vim + 64 bits python

caso contrário, não funcionará reclamando do erro que você citou.

Nota: O vim mais recente de 64 bits não pode mais ser baixado da página de download. Por alguma razão misteriosa, agora existe uma nova página especial para isso:

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

Antony Hatchkins
fonte
5

Tem certeza de que instalou a mesma versão do python de 32 bits que o Vim estava procurando? Não vejo razão para que isso não tenha resolvido o seu problema, a menos que você tenha um gvim exe construído sem o suporte a python. Enfim, eu tive exatamente esse problema, e o óbvio para mim era que minha dll python era x64, enquanto eu tinha o vim de 32 bits. A solução para mim foi simplesmente criar uma versão de 64 bits do Vim. Eu prefiro atualizar o Vim do que o Python. Os argumentos que enviei para o arquivo make foram:

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

Substituí meu gvim.exe original de 32 bits pelo de 64 bits que acabei de criar. Tudo funcionou perfeitamente. Se você está preocupado com o aborrecimento da compilação, não é muito simples usar os compiladores do visual studio 2010 e executar make a partir do prompt de comando apropriado do visual studio (x64 cross tools). Posso enviar mais instruções, se necessário.

nós
fonte
eu estava exatamente na sua situação. desde que eu não queria recompilar o vim, instalei a versão de 32 bits do python 2.7 e agora o gvim funciona como um encanto!
Apelliciari
Há uma versão x64 pré-compilada (vinculada à página de download do vim.org), a instalação resolve o problema.
Antony Hatchkins
2

Ok, aqui vai: Por algum motivo, instalar "cream" corrige: cream.sourceforge.net.

:python print("hello")
hello

Curiosamente, "creme" inclui uma versão regular do "gvim" - para que eu possa usar exatamente isso.

Andriy Drozdyuk
fonte
2

Uma solução alternativa que eu não vi mencionada que funcionou para mim.

1. como as outras respostas afirmam, verifique se a versão python corresponde ao 32/64 bits.

2. adicione set pythondll=FULL_PATH_TO_THE_APPROPRIATE_PYTHON.DLLao seu .vimrc

por exemplo: set pythondll=E:\\extern\\python27-32\\python27.dll

3. recarregue o vimrc fechando e reiniciando o vim ou usando:source $MYVIMRC

outros petiscos:

  • para descobrir onde está o seu .vimrc :echo $MYVIMRC

  • editar facilmente seu arquivo .vimrc :e $MYVIMRC

  • para ver o que está definido para :optionsentão /pythondllou:set pythondll?

  • para testar se funcionou :py import sysseguido por:py print('Happy')

Mais informações:

:help python-dynamic

:help pythondll

:help options

:help source

:help $MYVIMRC

editar:

Jon Plotner
fonte
No Vim 8.0, isso funciona apenas sem aspas (') ou aspas duplas ("). Obviamente, o caminho não deve conter espaços: /
Boris Brodski
bom ponto BorisBrodski. Alterei as aspas para backticks para ajudar com qualquer confusão.
Jon Plotner
1

Eu tive esse problema com o VIM 7.2, procurando o python25.dll. Isso foi corrigido adicionando o caminho ao arquivo python25.dll (c: \ python25 \ no meu sistema) na variável de ambiente PATH.

Willem van Ketwich
fonte
0

Se você deseja manter sua versão de 64 bits do Python, neste momento, uma versão fácil de instalar e recente do Vim64 para Windows pode ser encontrada aqui . Ele até desinstala o gvim de 32 bits existente para você.

Aurel Wisse
fonte
0

Há uma pergunta semelhante: Erro no Google drive: python27.dll

O problema está nas dependências python27.dll. Você pode verificar isso pelo utilitário dependencywalker. A dll ausente é "msvcr90.dll". Ele vem com o "Pacote Redistribuível do Microsoft Visual C ++ 2008" e o Windows 7 não o inclui mesmo com todas as atualizações instaladas. Você deve instalar este pacote manualmente a partir de:

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

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

Eugene Belyakov
fonte
OP já tinha uma solução melhor
yass