vim n'a pas pu charger la bibliothèque python27.dll

11

J'ai besoin de Windows 7 + vim + python pour écrire des plugins vim.

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

J'ai tout essayé:

  • vim réinstallé
  • désinstallé toutes mes versions de python 64 bits et installé celles de 32 bits
  • réinstaller vim
  • ordinateur redémarré
  • bureau et clavier perforés
  • ordinateur redémarré
Andriy Drozdyuk
la source
Pour tous ceux qui ont le même problème: l'installation de "cream" le résout: cream.sourceforge.net Oui - cette question sera probablement fermée - mais le fait est qu'il n'y a toujours pas de solution à cela n'importe où sur le web.
Andriy Drozdyuk,
Répondre à votre propre question est bien, mais postez-le comme réponse, pas comme commentaire, puis acceptez-le après deux jours.
compilez-le avec le support de python
Eric Fortis
Hm ... Je ne le compile pas, mais télécharge plutôt un programme d'installation.
Andriy Drozdyuk
@drozzy: il y a des installateurs ici: bintray.com/veegee/generic/vim_x64 . A eu le même problème que vous et ne voulait pas construire Vim par moi-même. Facile!
eckes

Réponses:

13

Diagnostique

:versionvous montrera si vous avez vim 32 bits ou 64 bits
python.exevous montrera si vous avez python 32 bits ou 64 bits.

Résolution

A vous de choisir maintenant:

  • Vim 32 bits + python 32 bits ou

  • Vim 64 bits + python 64 bits

sinon, cela ne fonctionnera pas en se plaignant de l'erreur que vous avez citée.

NB Le dernier vim 64 bits ne peut plus être téléchargé depuis la page de téléchargement. Pour une raison mystérieuse, il y a maintenant une nouvelle page spéciale pour cela:

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

Antony Hatchkins
la source
5

Êtes-vous sûr d'avoir installé la même version de python 32 bits que Vim recherchait? Je ne vois aucune raison pour laquelle cela n'aurait pas résolu votre problème, à moins que vous n'ayez en quelque sorte construit un exe gvim sans le support de python. Quoi qu'il en soit, j'avais précisément ce problème, et la chose évidente pour moi était que ma dll en python était x64, alors que j'avais vim 32 bits. La solution pour moi était simplement de construire une version 64 bits de Vim. Je préfère de loin la mise à niveau de Vim à la rétrogradation de Python. Les arguments que j'ai envoyés au fichier make étaient:

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

J'ai ensuite remplacé mon gvim.exe 32 bits d'origine par celui 64 bits que je viens de construire. Tout fonctionnait parfaitement. Si vous êtes préoccupé par les tracas de la construction, ne soyez pas très simple en utilisant les compilateurs de Visual Studio 2010 et en exécutant make à partir de l'invite de commande Visual Studio appropriée (outils croisés x64). Je peux envoyer des instructions supplémentaires si nécessaire.

nous s
la source
j'étais exactement dans ta situation. comme je ne voulais pas recompiler vim, j'ai installé la version 32 bits de python 2.7 et maintenant gvim fonctionne comme un charme!
apelliciari
Il existe une version x64 précompilée (liée depuis la page de téléchargement de vim.org), son installation résout le problème.
Antony Hatchkins
2

Ok, ça y va: pour une raison quelconque, l'installation de "cream" le corrige: cream.sourceforge.net.

:python print("hello")
hello

Chose intéressante, "crème" comprend une version régulière de "gvim" - donc je peux l'utiliser.

Andriy Drozdyuk
la source
2

Une autre solution que je n'ai pas vue mentionnée a fonctionné pour moi.

1. comme l'indiquent les autres réponses, assurez-vous que la version python correspond au bit 32/64.

2. ajoutez set pythondll=FULL_PATH_TO_THE_APPROPRIATE_PYTHON.DLLà votre .vimrc

par exemple: set pythondll=E:\\extern\\python27-32\\python27.dll

3. rechargez le vimrc soit en fermant et en redémarrant vim, soit en utilisant:source $MYVIMRC

autres friandises:

  • pour savoir où se trouve votre .vimrc :echo $MYVIMRC

  • pour éditer facilement votre .vimrc :e $MYVIMRC

  • pour voir ce qu'il est :optionsalors /pythondllou:set pythondll?

  • pour tester que cela a fonctionné :py import syssuivi par:py print('Happy')

Plus d'informations:

:help python-dynamic

:help pythondll

:help options

:help source

:help $MYVIMRC

Éditer:

Jon Plotner
la source
Sur Vim 8.0, cela ne fonctionne qu'avec des guillemets (') ou des guillemets ("). De toute évidence, votre chemin ne doit contenir aucun espace: /
Boris Brodski
bon point BorisBrodski. J'ai changé les citations en guillemets pour éviter toute confusion.
Jon Plotner
1

J'ai eu ce problème avec VIM 7.2 à la recherche de python25.dll. Ce problème a été résolu en ajoutant le chemin d'accès au fichier python25.dll (c: \ python25 \ sur mon système) à la variable d'environnement PATH.

Willem van Ketwich
la source
0

Si vous souhaitez conserver votre version 64 bits de Python, en ce moment, une version facile à installer et récente de Vim64 pour Windows peut être trouvée ici . Il désinstalle même votre gvim 32 bits existant pour vous.

Aurel Wisse
la source
0

Il y a une question similaire: erreur de lecteur Google: python27.dll

Le problème est dans les dépendances de python27.dll. Vous pouvez le vérifier par l'utilitaire dependencywalker. La dll manquée est "msvcr90.dll". Il est fourni avec «Package redistribuable Microsoft Visual C ++ 2008» et Windows 7 ne l'inclut pas, même avec toutes les mises à jour installées. Vous devez installer ce package manuellement à partir de:

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

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

Eugene Belyakov
la source
OP avait déjà une meilleure solution
yass