erro como segue:
Error detected while processing /Users/vvqboy/.vimrc:
line 8:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/Users/vvqboy/Library/Python/2.7/lib/python/site-packages/powerline/__init__.py", line 11, in <module>
from powerline.lib.config import ConfigLoader
File "/Users/vvqboy/Library/Python/2.7/lib/python/site-packages/powerline/lib/config.py", line 11, in <module>
from powerline.lib.threaded import MultiRunnedThread
File "/Users/vvqboy/Library/Python/2.7/lib/python/site-packages/powerline/lib/threaded.py", line 7, in <module>
from powerline.lib.monotonic import monotonic
File "/Users/vvqboy/Library/Python/2.7/lib/python/site-packages/powerline/lib/monotonic.py", line 19, in <module>
import ctypes
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ctypes/__init__.py", line 555, in <module>
_reset_cache()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ctypes/__init__.py", line 279, in _reset_cache
CFUNCTYPE(c_int)(lambda: None)
MemoryError
line 9:
Traceback (most recent call last):
File "<string>", line 1, in <module>
NameError: name 'powerline_setup' is not defined
line 10:
Traceback (most recent call last):
File "<string>", line 1, in <module>
NameError: name 'powerline_setup' is not defined
Traceback (most recent call last):
File "<string>", line 4, in <module>
File "/Users/vvqboy/Library/Python/2.7/lib/python/site-packages/powerline/__init__.py", line 11, in <module>
from powerline.lib.config import ConfigLoader
File "/Users/vvqboy/Library/Python/2.7/lib/python/site-packages/powerline/lib/config.py", line 11, in <module>
from powerline.lib.threaded import MultiRunnedThread
File "/Users/vvqboy/Library/Python/2.7/lib/python/site-packages/powerline/lib/threaded.py", line 7, in <module>
from powerline.lib.monotonic import monotonic
File "/Users/vvqboy/Library/Python/2.7/lib/python/site-packages/powerline/lib/monotonic.py", line 19, in <module>
import ctypes
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ctypes/__init__.py", line 555, in <module>
_reset_cache()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ctypes/__init__.py", line 279, in _reset_cache
CFUNCTYPE(c_int)(lambda: None)
MemoryError
An error occurred while importing powerline module.
This could be caused by invalid sys.path setting,
or by an incompatible Python version (powerline requires
Python 2.6, 2.7 or 3.2 and later to work). Please consult
the troubleshooting section in the documentation for
Vim: Caught deadly signal SEGV
Vim: Finished.
[1] 7428 segmentation fault vi .vimrc
vimrc da seguinte forma:
set rtp+=/Users/vvqboy/Library/Python/2.7/lib/python/site-packages/powerline/bindings/vim
" These lines setup the environment to show graphics and colors correctly.
set nocompatible
set t_Co=256
let g:minBufExplForceSyntaxEnable = 1
python from powerline.vim import setup as powerline_setup
python powerline_setup()
python del powerline_setup
if ! has('gui_running')
set ttimeoutlen=10
augroup FastEscape
autocmd!
au InsertEnter * set timeoutlen=0
au InsertLeave * set timeoutlen=1000
augroup END
endif
set laststatus=2 " Always display the statusline in all windows
set guifont=Inconsolata\ for\ Powerline:h14
set noshowmode " Hide the default mode text (e.g. -- INSERT -- below the statusline)
set nu
set tabstop=4
set softtabstop=4
set shiftwidth=4
set expandtab
eu tento
pip install --upgrade --force-reinstall --user powerline-status
Collecting powerline-status
Downloading https://files.pythonhosted.org/packages/9c/30/8bd3c62642778af9ad813a526c6ff7dd2f98144d6580ad6fab94ca389265/powerline-status-2.7.tar.gz (233kB)
100% |████████████████████████████████| 235kB 69kB/s
Building wheels for collected packages: powerline-status
Running setup.py bdist_wheel for powerline-status ... done
Stored in directory: /Users/vvqboy/Library/Caches/pip/wheels/c4/81/6b/bb1f440b9999fcfda2a1ccdf7b57a886acb08ea3e9e794945d
Successfully built powerline-status
Installing collected packages: powerline-status
Found existing installation: powerline-status 2.6
Uninstalling powerline-status-2.6:
Successfully uninstalled powerline-status-2.6
Successfully installed powerline-status-2.7
então ainda obterá erro
Vim: Caught deadly signal SEGV
Error detected while processing /Users/vvqboy/.vimrc:Vim: Finished.
line 8:
Exception MemoryError: MemoryError() in <module 'threading' from '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.pyc'> ignored
[1] 1788 segmentation fault vi .vimrc
python --version
Python 2.7.10
Ei, mesmo erro aqui. Tentei algumas correções usando brew (pensei que pode ser um problema de link de sistema), mas tudo parece estar bem lá, e meu pyenv parece bem.
Aqui está o erro que tenho para ter certeza absoluta (e isso aconteceu depois da atualização do Moajve também para mim):
An error occurred while importing powerline module.
This could be caused by invalid sys.path setting,
or by an incompatible Python version (powerline requires
Python 2.6, 2.7 or 3.2 and later to work). Please consult
the troubleshooting section in the documentation for
possible solutions.
Error detected while processing
...
line 157:
Traceback (most recent call last):
File "<string>", line 53, in <module>
File "<string>", line 9, in powerline_troubleshoot
File "/Users/.../Library/Python/2.7/lib/python/site-packages/powerline/__init__.py", line 11, in <module>
from powerline.lib.config import ConfigLoader
File "/Users/.../Library/Python/2.7/lib/python/site-packages/powerline/lib/config.py", line 11, in <module>
from powerline.lib.threaded import MultiRunnedThread
File "/Users/.../Library/Python/2.7/lib/python/site-packages/powerline/lib/threaded.py", line 7, in <module>
from powerline.lib.monotonic import monotonic
File "/Users/.../Library/Python/2.7/lib/python/site-packages/powerline/lib/monotonic.py", line 19, in <module>
import ctypes
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ctypes/__init__.py", line 555, in <module>
_reset_cache()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ctypes/__init__.py", line 279, in _reset_cache
CFUNCTYPE(c_int)(lambda: None)
MemoryError
Curiosamente, apontar o caminho para o arquivo _actual_ powerline.vim carregará o vim corretamente e não gerará nenhum erro, mas também não carregará o powerline.
/Library/Python/2.7/site-packages/powerline/powerline/bindings/vim/plugins/powerline.vim
O Vim fica feliz sem carregar o powerline ... Além disso, meu tmux conf carrega o powerline muito bem, então acho que esse é um problema específico do vim-powerline. Vou fazer uma investigação e voltar para você.
Editar: mudar para a versão do sistema de python e executar um shell interativo me permitiu executar
from powerline.vim import VimPowerLine
sem qualquer aborrecimento.
Por alguma razão, não consigo comentar a linha CTYPES (algum erro de permissão, investigarei mais tarde), mas não consigo rastrear o arquivo de origem onde a alocação de memória está realmente sendo feita. Alguém sabe onde esse arquivo existe, ou se essa é a maneira certa de proceder?
A versão Python do Vim foi compilada com a versão correspondente do Python que o Vim está realmente usando? MemoryError e SEGV durante a importação de ctypes indicam problemas com a instalação do Python, não problemas de powerline. Você deve ter o mesmo problema (pelo menos, MemoryError, embora eu não tenha certeza do que realmente significa: talvez, o alocador de memória retornando NULL?) Se você desabilitar o powerline e fizer :python import ctypes
no vim.
Bingo, isso não funcionou. No entanto, ele estava funcionando perfeitamente bem antes da atualização do MacOS Mojave.
Erro +1 após atualizado para mojave
Traceback (most recent call last):
File "<string>", line 4, in <module>
File "/Users/zzs/Library/Python/2.7/lib/python/site-packages/powerline/__init__.py", line 11, in <module>
from powerline.lib.config import ConfigLoader
File "/Users/zzs/Library/Python/2.7/lib/python/site-packages/powerline/lib/config.py", line 11, in <module>
from powerline.lib.threaded import MultiRunnedThread
File "/Users/zzs/Library/Python/2.7/lib/python/site-packages/powerline/lib/threaded.py", line 7, in <module>
from powerline.lib.monotonic import monotonic
File "/Users/zzs/Library/Python/2.7/lib/python/site-packages/powerline/lib/monotonic.py", line 19, in <module>
import ctypes
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ctypes/__init__.py", line 555, in <module>
_reset_cache()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ctypes/__init__.py", line 279, in _reset_cache
CFUNCTYPE(c_int)(lambda: None)
MemoryError
An error occurred while importing powerline module.
This could be caused by invalid sys.path setting,
or by an incompatible Python version (powerline requires
Python 2.6, 2.7 or 3.2 and later to work). Please consult
the troubleshooting section in the documentation for
possible solutions.
Error detected while processing /usr/local/lib/python2.7/site-packages/powerline/bindings/vim/plugin/powerline.vim:
line 157:
Traceback (most recent call last):
File "<string>", line 53, in <module>
File "<string>", line 9, in powerline_troubleshoot
File "/Users/zzs/Library/Python/2.7/lib/python/site-packages/powerline/__init__.py", line 11, in <module>
from powerline.lib.config import ConfigLoader
File "/Users/zzs/Library/Python/2.7/lib/python/site-packages/powerline/lib/config.py", line 11, in <module>
from powerline.lib.threaded import MultiRunnedThread
File "/Users/zzs/Library/Python/2.7/lib/python/site-packages/powerline/lib/threaded.py", line 7, in <module>
from powerline.lib.monotonic import monotonic
File "/Users/zzs/Library/Python/2.7/lib/python/site-packages/powerline/lib/monotonic.py", line 19, in <module>
import ctypes
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ctypes/__init__.py", line 555, in <module>
_reset_cache()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ctypes/__init__.py", line 279, in _reset_cache
CFUNCTYPE(c_int)(lambda: None)
MemoryError
Press ENTER or type command to continue
A versão Python do Vim foi compilada com a versão correspondente do Python que o Vim está realmente usando? MemoryError e SEGV durante a importação de ctypes indicam problemas com a instalação do Python, não problemas de powerline. Você deve ter o mesmo problema (pelo menos, MemoryError, embora eu não tenha certeza do que realmente significa: talvez, o alocador de memória retornando NULL?) Se você desabilitar o powerline e fizer
:python import ctypes
no vim.
Portanto, estava funcionando bem _ logo antes_ da atualização. Minha configuração de zsh e tmux está funcionando bem usando as outras ligações também.
Ao executar o comando: :python import ctypes
no vim, obtenho o mesmo erro (o erro CTYPE) conforme mostrado acima. Eu me pergunto o que a Apple mudou na versão enviada do Apple-Python, ou realmente, se eles mudaram alguma coisa. Vou tentar um pouco mais tarde esta noite e voltar atrás.
Zsh e tmux usam o interpretador Python em um processo separado (a menos que você esteja usando zsh com libzpython, mas não há equivalente tmux). O Vim está carregando o Python como uma biblioteca dinâmica via dlopen ou apenas se vincula a ela, que é mais frágil, e se você mudar a versão do Python, precisará recompilar o Vim com a nova ou correrá o risco de ter problemas. Não tenho certeza de como as diferenças nas versões podem fazer com que a importação de ctypes funcione mal tão tarde (normalmente você não conseguiria :python
execução, ou às vezes pode travar), mas é uma explicação possível.
Outra é a diferença entre a versão do Python do sistema e homebrew. Não tenho Mac e não posso dizer qual Vim deve carregar dos dois e como exatamente ele faz o feito, mas esta é outra explicação comum de problemas com (app (vim, etc)) + configuração do Python no Mac, e pode causar vários tipos de erros na importação.
@ ZyX-I oooo entendi. Você tem um documento improvisado que descreve o processo? Eu não tinha ideia de que era assim que funcionava.
Deixe-me recompilar o vim com a versão do sistema e ver o que acontece!
SOLUÇÃO!!
1) Descubra sua versão atual do vim. O meu _não_ foi compilado com homebrew, mas era a versão padrão do sistema, que foi recompilado pela Apple para o lançamento do Mojave (olhando a data). Eu acho que a declaração anterior é correta, com base na data de compilação, mas me corrija se eu estiver errado. Execute vim --version
e você verá que foi compilado por [email protected]
.
2) Eu escolhi desinstalar a versão brew'd do python @ 2 e instalei o python via brew (ele instala 3.7.0 por padrão no momento da escrita), e _não_ vinculei-o. Apenas deixei lá. Leia algum fórum afirmando que ele não compila com o brew python a menos que esteja instalado. @ ZyX-I talvez você saiba mais sobre isso?
3) Depois de brew install python
, use o homebrew para instalar o vim usando o comando brew install vim
. Em seguida, execute /usr/local/bin/vim --version
e certifique-se de que o python3 tem um sinal '+' próximo a ele. Reinicie seu shell, e então o /.vimrc deve ler: /Library/Python/2.7/site-packages/powerline/powerline/bindings/vim/
ou qualquer diretório que você esteja olhando.
.... e deve estar funcionando!
Edit: Alguma gramática, escrevi isso sem café.
Eu tenho o mesmo erro quando atualizei para o Mojave.
line 63:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/Users/xxx/Library/Python/2.7/lib/python/site-packages/powerline/__init__.py", line 11, in <module>
from powerline.lib.config import ConfigLoader
File "/Users/xxx/Library/Python/2.7/lib/python/site-packages/powerline/lib/config.py", line 11, in <module>
from powerline.lib.threaded import MultiRunnedThread
File "/Users/xxxx/Library/Python/2.7/lib/python/site-packages/powerline/lib/threaded.py", line 7, in <module>
from powerline.lib.monotonic import monotonic
File "/Users/xxx/Library/Python/2.7/lib/python/site-packages/powerline/lib/monotonic.py", line 19, in <module>
import ctypes
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ctypes/__init__.py", line 555, in <module>
_reset_cache()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ctypes/__init__.py", line 279, in _reset_cache
CFUNCTYPE(c_int)(lambda: None)
MemoryError
line 64:
Traceback (most recent call last):
File "<string>", line 1, in <module>
NameError: name 'powerline_setup' is not defined
line 65:
Traceback (most recent call last):
File "<string>", line 1, in <module>
NameError: name 'powerline_setup' is not defined
Depois de reverter para o python padrão do sistema, ainda recebo o mesmo erro.
@zhongruizhi você tentou o que sugeri acima? Eu postei minha solução e isso consertou para mim!
@anirrudh
obrigado, mas parece que sua solução não é adequada para minha condição. Não estou usando o brew e estou usando o python padrão do sistema (2.7.10) e o vim. (+ Python / dyn -python3).
@anirrudh realmente funciona para mim, uma boa solução, muito obrigado
@zhongruizhi Então eu costumava ter a versão vim padrão fornecida pela Apple também, mas ela parece estar quebrada para powerline, a única correção parece ser instalar o vim via brew - e quanto às versões python, eu trato disso no meu post acima, mas você precisa ter certeza de que + python3 é uma coisa, não + python / dyn, que era exatamente o que o meu apple fornecido vim tinha!
@anirrudh Obrigado por descobrir os detalhes. E funciona.
Encontrei o motivo e uma solução que acho mais elegent:
CFUNCTYPE na função _reset_cache () no arquivo:
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ctypes/__init__.py
obter erro de memória.
Então, pulei para este arquivo e encontrei o código:
265 def _reset_cache():
266 _pointer_type_cache.clear()
267 _c_functype_cache.clear()
268 if _os.name in ("nt", "ce"):
269 _win_functype_cache.clear()
270 # _SimpleCData.c_wchar_p_from_param
271 POINTER(c_wchar).from_param = c_wchar_p.from_param
272 # _SimpleCData.c_char_p_from_param
273 POINTER(c_char).from_param = c_char_p.from_param
274 _pointer_type_cache[None] = c_void_p
275 # XXX for whatever reasons, creating the first instance of a callback
276 # function is needed for the unittests on Win64 to succeed. This MAY
277 # be a compiler bug, since the problem occurs only when _ctypes is
278 # compiled with the MS SDK compiler. Or an uninitialized variable?
279 CFUNCTYPE(c_int)(lambda: None)
Como você pode ver, a função CFUNCTYPE na linha 279 é adicionada por unittest no Win64 por quaisquer motivos. Para o usuário do mac, esta linha é inútil e leva a um erro de memória no macOS. Então, comento a linha 279 e executo novamente o vim, não há erros com o powerline.
Mais detalhes:
O arquivo __init__.py
é um arquivo somente leitura do sistema e você precisa executar o comando csrutil disable
no modo de recuperação mac (pressione command + R ao inicializar) para desabilitar a Proteção de Integridade do Sistema. Após a reinicialização, você pode editar este arquivo usando a permissão de root.
brew install vim --with-lua --with-override-system-vi
e reinicie o shell, corrigido
https://github.com/Valloric/YouCompleteMe/issues/3165#issuecomment -425616700
Obrigado @ Joshua-Chang
Funcionou para mim
obrigado @ Joshua-Chang
vim está ok, mas vi ainda errado
`Vim: Pego sinal mortal SEGV
Erro detectado durante a função de processamento
linha 4:
Exception MemoryError: MemoryError () em
Falha de segmentação: 11`
vim está ok, mas vi ainda errado
talvez haja uma resolução melhor por aí, mas eu corrigi essa adicionando alias vi="vim"
em meu arquivo rc shell
Tenho o mesmo problema com @ always77 quando uso o commad git commit --amend
.
@kyriejoshua
tente a sugestão de @Joshua-Chang, funciona para mim.
tente a sugestão de @Joshua-Chang, funciona para mim.
Tentei.
Ele funciona quando eu uso o vim diretamente, mas ainda está errado quando eu executo o comando git commit --amend
ou tento consertar conflitos na linha de comando.
Por fim, resolvi esse problema lendo este artigo. @ sempre77
https://ltaoo.github.io/2018/10/22/%E6%9B%B4%E6%96%B0%20macOS%20Mojave%20%E5%90%8E%20vim%20%E6%89%93 % E4% B8% 8D% E5% BC% 80 /
@kyriejoshua Se importa em compartilhar a solução?
É minha solução. @josephtyler
cd ~/.vim/bundle/YouCompleteMe
git pull
git submodule update --init --recursive.
python install.py
e reinicie o shell, corrigido
Para usuários YCM, use os contatos YCM
Estamos rastreando um problema semelhante com o sistema Vim aqui: https://github.com/Valloric/YouCompleteMe/issues/3271
Alerta de spoiler: acho que é coisa do Mojave e não do YCM.
Para mim, o problema começou a aparecer depois que uma "atualização crítica" foi instalada pelo Mojave (por exemplo, estou no Mojave há muito tempo com o vim / powerline funcionando bem). Acontece que era simplesmente um caso de vim
errado sendo usado (por exemplo, /usr/bin/vim
, o vim integrado da Apple) em vez do meu vim de /usr/local/bin/vim
. Foi apenas uma questão de consertar meus PATH
; a atualização provavelmente o reordenou.
Acabei de começar a usar um mac com uma nova instalação do Mojave e tive esse problema, deve-se observar que estou usando o python3.7.
Eu resolvi fazendo o seguinte:
brew install vim
echo "alias vim=/usr/local/Cellar/vim/<VIM_VERSION>/bin/vim" >> ~/.bash_profile
Basta substituir VIM_VERSION com a versão do vim que brew instalado na primeira linha.
Pode adicionar outra confirmação de que isso está relacionado à atualização do macOS Mojave. Vou ter que fazer algum trabalho de comparação com outra máquina que NÃO foi atualizada ainda para ver quais bibliotecas do sistema foram alteradas. Tenho certeza de que é algo que mudou na instalação padrão do python 2.7 (.10) ou algo com uma biblioteca relacionada.
Tive esse mesmo problema vindo do bash para o zsh, o que consertou para mim foi exportar meu PATH
. export PATH=$HOME/bin:/usr/local/bin:$PATH
Eu já tinha o python 3.7.3, vim (a versão incluída do macvim compilado por [email protected]), e já tinha o Mojave. Estava apenas fazendo a transição para zsh.
Então, estou batendo a cabeça contra a parede tentando descobrir por que isso não está funcionando para mim um dia depois de ser forçada a atualizar meu laptop de trabalho para o Mojave. Eu segui os guias acima e fiz o powerline funcionar no vim novamente, mas para a minha vida, ele não funcionaria corretamente quando tento git commit
.
Verifiquei duas vezes em meu .zshrc
se meu editor estava definido como vim
. Eu então alias vi=vim
, e ainda nenhum dado.
Então, depois de reinstalar o powerline e o vim cerca de cem vezes diferentes, percebi na mensagem de erro (esta sendo uma mensagem de erro muito menor após reiniciar minha janela de terminal novamente e NÃO iniciar o tmux ou qualquer outra coisa:
Vim: Caught deadly signal SEGV
Vim: Finished.
error: /usr/bin/vim died of signal 11
error: There was a problem with the editor '/usr/bin/vim'.
Please supply the message using either -m or -F option.
Bem ali: /usr/bin/vim
Então, verifiquei duas vezes e, eis que em meu .gitconfig
encontrei as seguintes linhas:
[core]
editor = /usr/bin/vim
Então, isso foi alterado para apenas editor = vim
TL; DR : Se você ainda está tendo problemas com sua instalação de git commit
vim, verifique se seu .gitconfig
não está apontando para o vim do sistema.
Comentários muito úteis
SOLUÇÃO!!
1) Descubra sua versão atual do vim. O meu _não_ foi compilado com homebrew, mas era a versão padrão do sistema, que foi recompilado pela Apple para o lançamento do Mojave (olhando a data). Eu acho que a declaração anterior é correta, com base na data de compilação, mas me corrija se eu estiver errado. Execute
vim --version
e você verá que foi compilado por[email protected]
.2) Eu escolhi desinstalar a versão brew'd do python @ 2 e instalei o python via brew (ele instala 3.7.0 por padrão no momento da escrita), e _não_ vinculei-o. Apenas deixei lá. Leia algum fórum afirmando que ele não compila com o brew python a menos que esteja instalado. @ ZyX-I talvez você saiba mais sobre isso?
3) Depois de
brew install python
, use o homebrew para instalar o vim usando o comandobrew install vim
. Em seguida, execute/usr/local/bin/vim --version
e certifique-se de que o python3 tem um sinal '+' próximo a ele. Reinicie seu shell, e então o /.vimrc deve ler:/Library/Python/2.7/site-packages/powerline/powerline/bindings/vim/
ou qualquer diretório que você esteja olhando..... e deve estar funcionando!
Edit: Alguma gramática, escrevi isso sem café.