vim nie mógł załadować biblioteki python27.dll

11

Potrzebuję Windows 7 + vim + python do pisania wtyczek vim.

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

Próbowałem wszystkiego:

  • ponownie zainstalowany vim
  • odinstalowałem wszystkie moje 64-bitowe wersje Pythona i zainstalowałem wersje 32-bitowe
  • ponownie zainstalowałem vima
  • zrestartowałem komputer
  • dziurkowane biurko i klawiatura
  • zrestartowałem komputer
Andrij Drozdyuk
źródło
Dla wszystkich, którzy mają ten sam problem: zainstalowanie „kremu” rozwiązuje problem: cream.sourceforge.net Tak - to pytanie prawdopodobnie zostanie zamknięte - ale faktem jest, że nadal nie ma rozwiązania tego problemu w dowolnym miejscu w sieci.
Andriy Drozdyuk
Odpowiedzi na własne pytanie są dobre, ale opublikuj je jako odpowiedź, a nie komentarz, a następnie zaakceptuj je po dwóch dniach.
skompiluj go ze wsparciem dla Pythona
Eric Fortis
Hm ... Nie kompiluję tego, ale raczej pobieram instalator.
Andriy Drozdyuk
@drozzy: tu instalatory: bintray.com/veegee/generic/vim_x64 . Miałem ten sam problem co ty i nie chciałem samodzielnie budować Vima. Prosty!
eckes

Odpowiedzi:

13

Diagnostyka

:versionpokaże ci, jeśli masz 32-bitowy vim lub 64-bitowy
python.exepokaże, czy masz 32-bitowy lub 64-bitowy python.

Rozkład

Teraz możesz wybrać:

  • 32-bitowy vim + 32-bitowy python lub

  • 64-bitowy vim + 64-bitowy python

w przeciwnym razie nie będzie narzekać na podany błąd.

Uwaga: najnowszego 64-bitowego vima nie można już pobrać ze strony pobierania. Z jakiegoś tajemniczego powodu jest teraz nowa specjalna strona:

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

Antony Hatchkins
źródło
5

Czy na pewno zainstalowałeś tę samą 32-bitową wersję Pythona, której szukał Vim? Nie widzę powodu, dla którego nie rozwiązałoby to twojego problemu, chyba że w jakiś sposób zbudowałeś exe gvim bez obsługi Pythona. W każdym razie miałem dokładnie ten problem i oczywistą rzeczą dla mnie było to, że moja biblioteka DLL Pythona miała x64, podczas gdy miałem 32-bitowy vim. Rozwiązaniem było dla mnie po prostu zbudowanie 64-bitowej wersji Vima. Wolę aktualizację Vima niż obniżenie wersji Pythona. Argumenty, które wysłałem do pliku make, to:

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

Następnie zastąpiłem mój oryginalny 32-bitowy program gvim.exe 64-bitowym, który właśnie zbudowałem. Wszystko działało idealnie. Jeśli martwisz się problemami z kompilacją, nie przejmuj się - użycie kompilatorów Visual Studio 2010 i uruchomienie make z odpowiedniego wiersza poleceń Visual Studio (narzędzia krzyżowe x64) były bardzo proste. W razie potrzeby mogę wysłać dalsze instrukcje.

wes
źródło
Byłem dokładnie w twojej sytuacji. ponieważ nie chciałem przekompilować vima, zainstalowałem 32-bitową wersję Pythona 2.7, a teraz gvim działa jak urok!
apelliciari
Istnieje wstępnie skompilowana wersja x64 (link ze strony pobierania vim.org), jej zainstalowanie rozwiązuje problem.
Antony Hatchkins
2

Ok, oto: z jakiegoś powodu zainstalowanie „kremu” naprawia to: cream.sourceforge.net.

:python print("hello")
hello

Co ciekawe, „krem” zawiera zwykłą wersję „gvim” - więc mogę z niego korzystać.

Andrij Drozdyuk
źródło
2

Alternatywne rozwiązanie, o którym nigdy nie wspominałem, które działało dla mnie.

1. jako inne odpowiedzi, upewnij się, że wersja Pythona odpowiada bitowi 32/64.

2. dodaj set pythondll=FULL_PATH_TO_THE_APPROPRIATE_PYTHON.DLLdo swojego .vimrc

na przykład: set pythondll=E:\\extern\\python27-32\\python27.dll

3. Załaduj ponownie vimrc, zamykając i ponownie uruchamiając vim lub używając:source $MYVIMRC

inne ciekawostki:

  • aby dowiedzieć się, gdzie jest twój .vimrc :echo $MYVIMRC

  • aby łatwo edytować .vimrc :e $MYVIMRC

  • aby zobaczyć, co jest ustawione na :optionswtedy /pythondlllub:set pythondll?

  • aby sprawdzić, czy zadziałało, :py import sysa następnie:py print('Happy')

Więcej informacji:

:help python-dynamic

:help pythondll

:help options

:help source

:help $MYVIMRC

edytować:

Jon Plotner
źródło
W Vimie 8.0 działa to tylko bez cudzysłowów (') lub podwójnych cudzysłowów ("). Oczywiście ścieżka nie powinna zawierać spacji: /
Boris Brodski
dobry punkt BorisBrodski. Zmieniłem cytaty na backticks, aby pomóc w jakimkolwiek zamieszaniu.
Jon Plotner
1

Miałem ten problem z VIM 7.2 szukającym python25.dll. Zostało to naprawione przez dodanie ścieżki do pliku python25.dll (c: \ python25 \ w moim systemie) do zmiennej środowiskowej PATH.

Willem van Ketwich
źródło
0

Jeśli chcesz zachować swoje 64-bitowej wersji Pythona, w tej chwili, łatwym do zainstalowania i najnowsza wersja Vim64 dla systemu Windows można znaleźć tutaj . Nawet odinstalowuje dla ciebie istniejący 32-bitowy gvim.

Aurel Wisse
źródło
0

Istnieje podobne pytanie: błąd dysku Google: python27.dll

Problem dotyczy zależności python27.dll. Możesz to sprawdzić za pomocą narzędzia dependencywalker. Nieodebrane dll to „msvcr90.dll”. Jest dostarczany z „pakietem redystrybucyjnym Microsoft Visual C ++ 2008”, a system Windows 7 nie zawiera go nawet we wszystkich zainstalowanych aktualizacjach. Powinieneś zainstalować ten pakiet ręcznie z:

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

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

Eugene Belyakov
źródło
PO już lepszym rozwiązaniem
Yass