2012-03-19 34 views
16

Tôi đã cố gắng sử dụng omnicompletion Vim với mã Python của tôi, nhưng bất cứ khi nào tôi cố gắng C-x + C-o, nó nhắc nhở thông báo lỗi sau:Lỗi Runtime với Vim Omnicompletion

Runtime Error! Chương trình

E: \ Vim \ vim73 \ gvim.exe

R6034 Một ứng dụng đã thực hiện một nỗ lực để nạp thư viện runtime C không chính xác. Vui lòng liên hệ với nhóm hỗ trợ của ứng dụng để biết thêm thông tin.

Ai cũng có thể cho tôi biết cách giải quyết vấn đề này! Rất rất cảm ơn!

Trả lời

22

Tôi có cùng một vấn đề gây ra bởi gvim không thể tải python pyd dll. Có một số mẹo để giải quyết dll .pyd gây ra vấn đề trên. Tôi không chắc chắn là có bất kỳ cách nào để giải quyết Runtime Error cho tất cả các dll. Đề cập đến Not embed the correct manifest for the msvc runtimes on windows liên kết về cách giải quyết vấn đề của bạn.

Cập nhật: Thay vì cập nhật tệp kê khai cho tệp .pyd. Tôi đã cố gắng cập nhật tệp kê khai cho gvim trực tiếp bằng cách cập nhật tệp kê khai gvim ban đầu với một số thay đổi từ tệp kê khai python.exe.

# dump manifest from gvim.exe 
>> mt.exe -inputresource:gvim.exe;#1 -out:gvim.manifest 

# dump manifest from python.exe 
# *I use python26 for gvim, default gvim come with python27 
>> mt.exe -inputresource:c:\python26\python.exe;#1 -out:python.manifest 

# manually edit gvim.manifest, just change the line with dependentAssembly with 
# line from the python.manifest which will depend on VC90.CRT 
# Then, update the edited manifest into gvim.exe 
>> mt.exe -manifest gvim.manifest -outputresource:gvim.exe;1 

Dưới đây là gvim.manifest tôi chỉnh sửa:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3"> 
    <assemblyIdentity processorArchitecture="*" version="7.3.0.0" type="win32" name="Vim"></assemblyIdentity> 
    <description>Vi Improved - A Text Editor</description> 
    <dependency> 
    <dependentAssembly> 
     <assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity> 
    </dependentAssembly> 
    </dependency> 

    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> 
    <security> 
     <requestedPrivileges> 
     <requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel> 
     </requestedPrivileges> 
    </security> 
    </trustInfo> 

    <asmv3:application> 
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings"> 
     <dpiAware>true</dpiAware> 
    </asmv3:windowsSettings> 
    </asmv3:application> 
</assembly> 
+2

Bạn là người đàn ông! Cảm ơn rất nhiều! –

+2

+1 Thật lố bịch khi phải làm vậy, nhưng điều này đã khắc phục được vấn đề. – Hubro

+0

Do môi trường của tôi, tôi đã có rất nhiều cuộc đấu tranh nhận được vim và python để chơi độc đáo với nhau. Sửa đổi tệp kê khai cho gvim như đã đề cập ở trên đã giải quyết được hoàn toàn vấn đề của tôi. Tôi sẽ không nghĩ về điều này. Cảm ơn! – Mark

4

tôi đã cùng một vấn đề (Windows 7) và tôi có thể giải quyết nó bằng cách loại bỏ đường dẫn từ biến PATH của tôi có chứa msvcr90.dll.

Sau khi xóa một số mục, lỗi dừng xuất hiện. Thật không may, tôi đã không ghi lại những mục tôi đã xóa. Nhưng đó là C:\Program Files (x86)\OpenVPN\bin và một số người khác bao gồm cả Windows Live.

tôi đã gợi ý về tìm kiếm các vấn đề trong các đường đi từ đây (cuối trang): https://bitbucket.org/Haroogan/vim-youcompleteme-for-windows/src

+2

Cảm ơn giải pháp của bạn.Trong trường hợp của tôi nó là cmake mà tôi đã cài đặt gần đây :) – Maciek

+0

Cảm ơn @Maciek đã đề cập đến điều đó, đó là cmake trong trường hợp của tôi là tốt. Tôi chỉ đơn giản là xóa các dlls thời gian chạy từ thư mục của nó vì nó được cài đặt trên hệ thống của tôi vì vậy không cần phải giữ nó ở đó. –

+0

Cảm ơn rất nhiều! Tôi đã có msvcr90.dll trong thư mục làm việc của tôi đã gây ra cho tôi vấn đề này. – randlet