vim не может загрузить библиотеку python27.dll

11

Мне нужна Windows 7 + vim + python для написания плагинов vim.

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

Перепробовал все:

  • переустанавливал vim
  • удалил все мои 64-битные версии Python и установил 32-битные
  • переустановил vim снова
  • перезагрузил компьютер
  • перфорированный стол и клавиатура
  • перезагрузил компьютер
Андрей Дроздюк
источник
Для всех тех, у кого такая же проблема: установка «сливок» устраняет ее: cream.sourceforge.net Да, этот вопрос, вероятно, будет закрыт, но факт в том, что в Интернете до сих пор нет решения этой проблемы.
Андрей Дроздюк
Хорошо ответить на свой вопрос, но опубликуйте его как ответ, а не комментарий, а затем примите его через два дня.
скомпилируйте его с поддержкой Python
Эрик Фортис
Хм ... Я не собираю его, а загружаю установщик.
Андрей Дроздюк
@drozzy: здесь есть установщики: bintray.com/veegee/generic/vim_x64 . У меня была та же проблема, что и у вас, и я не хотел создавать Vim самостоятельно. Просто!
Eckes

Ответы:

13

диагностика

:versionпокажет вам, если у вас 32-битный vim или 64-битный
python.exe, покажет вам, если у вас 32-битный или 64-битный питон.

разрешение

Теперь вам остается выбрать:

  • 32-битный VIM + 32-битный питон или

  • 64-битный VIM + 64-битный питон

иначе это не будет работать, жалуясь на ошибку, которую вы указали.

NB Последние 64-битные vim больше нельзя загружать со страницы загрузки. По какой-то таинственной причине теперь есть новая специальная страница для этого:

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

Энтони Хэтчкинс
источник
5

Вы уверены, что установили ту же версию 32-битного Python, которую искал Vim? Я не вижу причин, по которым это не решило бы вашу проблему, если бы у вас не было сборки gvim exe без поддержки python. Во всяком случае, у меня была именно эта проблема, и для меня было очевидным, что мой python dll был x64, тогда как у меня был 32-битный vim. Решением для меня было просто создать 64-битную версию Vim. Я предпочитаю обновлять Vim до понижения Python. Аргументы, которые я отправил в файл make:

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

Затем я заменил свой оригинальный 32-битный gvim.exe на 64-битный, который я только что построил. Все работало отлично. Если вы беспокоитесь о сложностях сборки, не думайте, что было очень просто использовать компиляторы Visual Studio 2010 и запускать make из соответствующей командной строки Visual Studio (кросс-инструменты x64). Я могу прислать дополнительные инструкции, если это необходимо.

Уэс
источник
Я был точно в твоей ситуации. так как я не хотел перекомпилировать vim, я установил 32-битную версию python 2.7 и теперь gvim работает как шарм!
Апельсичиари
Существует предварительно скомпилированная версия x64 (по ссылке со страницы загрузки vim.org), ее установка решает проблему.
Энтони Хэтчкинс
2

Хорошо, вот и все: по какой-то причине установка "cream" исправляет это: cream.sourceforge.net.

:python print("hello")
hello

Интересно, что «крем» включает в себя обычную версию «гвим» - так что я могу использовать только это.

Андрей Дроздюк
источник
2

Упомянутое альтернативное решение, которое я не видел, сработало для меня.

1. как указано в других ответах, убедитесь, что версия python соответствует 32/64 биту.

2. добавить set pythondll=FULL_PATH_TO_THE_APPROPRIATE_PYTHON.DLLв свой .vimrc

например: set pythondll=E:\\extern\\python27-32\\python27.dll

3. перезагрузите vimrc, закрыв и перезапустив vim, или используя:source $MYVIMRC

другие лакомые кусочки:

  • чтобы узнать, где находится ваш .vimrc :echo $MYVIMRC

  • легко редактировать ваш .vimrc :e $MYVIMRC

  • чтобы увидеть, что он установлен на :optionsто /pythondllили:set pythondll?

  • чтобы проверить, что это работает, :py import sysа затем:py print('Happy')

Больше информации:

:help python-dynamic

:help pythondll

:help options

:help source

:help $MYVIMRC

редактировать:

Джон Плотнер
источник
В Vim 8.0 это работает только без кавычек (') или двойных кавычек ("). Очевидно, ваш путь не должен содержать пробелов: /
Борис Бродский
Хороший вопрос БорисБродский. Я изменил кавычки, чтобы помочь с любой путаницей.
Джон Плотнер
1

У меня была эта проблема с VIM 7.2 при поиске python25.dll. Это было исправлено путем добавления пути к файлу python25.dll (c: \ python25 \ в моей системе) к переменной среды PATH.

Виллем ван Кетвич
источник
0

Если вы хотите сохранить свою 64-битную версию Python, на данный момент простую в установке и последнюю версию Vim64 для Windows можно найти здесь . Он даже удаляет ваш существующий 32-битный gvim для вас.

Аурел Висс
источник
0

Есть похожий вопрос: гугл диск ошибка: python27.dll

Проблема в зависимостях python27.dll. Вы можете проверить это с помощью утилиты зависимостей. Пропущенный dll является "msvcr90.dll". Он поставляется с «Microsoft Visual C ++ 2008 Redistributable Package», и Windows 7 не включает его даже со всеми установленными обновлениями. Вы должны установить этот пакет вручную из:

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

32-разрядная версия Windows 7: https://www.microsoft.com/en-US/download/details.aspx?id=29

Евгений Беляков
источник
OP уже лучше решение
Ясс