error de la siguiente manera:
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 de la siguiente manera:
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
Yo intento
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
entonces sigue recibiendo error
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 --versión
Python 2.7.10
Oye, el mismo error aquí. Probé un par de arreglos usando brew (pensé que podría ser un problema de enlace simbólico), pero todo parece estar bien allí, y mi pyenv parece estar bien.
Aquí está el error que tengo para estar doblemente seguro (y esto también sucedió después de la actualización de Moajve para mí):
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, señalar la ruta al archivo _actual_ powerline.vim cargará vim bien y no arrojará ningún error, pero tampoco cargará la línea eléctrica.
/Library/Python/2.7/site-packages/powerline/powerline/bindings/vim/plugins/powerline.vim
Vim se aleja felizmente SIN cargar powerline ... Además, mi tmux conf carga powerline muy bien, así que creo que este es un problema específico de vim-powerline. Investigaré un poco y me pondré en contacto contigo.
Editar: Cambiar a la versión del sistema de Python y ejecutar un shell interactivo me permitió ejecutar
from powerline.vim import VimPowerLine
sin ningún tipo de molestia.
Por la razón que sea, no puedo comentar la línea CTYPES (algunos errores de permisos, investigaré más adelante), pero no puedo rastrear el archivo de origen donde realmente se está haciendo la asignación de memoria. ¿Alguien sabe dónde existe este archivo, o si esa es la forma correcta de proceder?
¿La versión de Python Vim se compiló con la versión de Python que Vim está usando realmente? MemoryError y luego SEGV al importar ctypes indica problemas con la instalación de Python, no problemas de línea eléctrica. Debería tener el mismo problema (al menos, MemoryError, aunque no estoy seguro de lo que realmente significa: ¿quizás, el asignador de memoria devuelve NULL?) Si deshabilita la línea eléctrica y hace :python import ctypes
en vim.
Bingo, eso no funcionó. Sin embargo, estaba funcionando absolutamente bien antes de la actualización de MacOS Mojave.
Error +1 después de actualizar a 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
¿La versión de Python Vim se compiló con la versión de Python que Vim está usando realmente? MemoryError y luego SEGV al importar ctypes indica problemas con la instalación de Python, no problemas de línea eléctrica. Debería tener el mismo problema (al menos, MemoryError, aunque no estoy seguro de lo que realmente significa: ¿quizás, el asignador de memoria devuelve NULL?) Si deshabilita la línea eléctrica y hace
:python import ctypes
en vim.
Así que estaba funcionando bien _justo antes_ de la actualización. Mi configuración de zsh y tmux también funciona bien con los otros enlaces.
Al ejecutar el comando: :python import ctypes
en vim, obtengo el mismo error (el error CTYPE) que se muestra arriba. Me pregunto qué cambió Apple en la versión enviada de Apple-Python, o realmente, si cambiaron algo. Lo intentaré un poco más tarde esta noche y volveré.
Zsh y tmux usan el intérprete de Python en un proceso separado (a menos que esté usando zsh con libzpython, pero no hay equivalente de tmux). Vim está cargando Python como una biblioteca dinámica a través de dlopen o simplemente se vincula con él, que es más frágil, y si alguna vez cambia la versión de Python, debe volver a compilar Vim con la nueva o corre el riesgo de tener problemas. No estoy seguro de cómo las diferencias en las versiones pueden hacer que la importación de ctypes funcione mal tan tarde (normalmente no se ejecutará :python
, o algunas veces puede fallar), pero es una posible explicación.
Otro es la diferencia entre el sistema y la versión Homebrew de Python. No tengo Mac y no puedo decir cuál se supone que Vim debe cargar de los dos y cómo lo hace exactamente, pero esta es otra explicación común de los problemas con (aplicación (vim, etc.)) + configuración de Python en Mac, y puede causar varios tipos de errores en la importación.
@ ZyX-I oooo lo tengo. ¿Tiene un documento que describa el proceso? No tenía idea de cómo funcionaba.
¡Déjame volver a compilar vim con la versión del sistema y ver qué pasa!
¡¡SOLUCIÓN!!
1) Averigüe su versión actual de vim. El mío _no_ se compiló con homebrew, pero era la versión predeterminada del sistema, que fue recompilada por Apple para el lanzamiento de Mojave (mirando la fecha). Creo que la declaración anterior es precisa, según la fecha de compilación, pero corrígeme si me equivoco. Ejecute vim --version
y debería ver que ha sido compilado por [email protected]
.
2) Elegí desinstalar la versión elaborada de python @ 2 , e instalé Python a través de brew (se instala 3.7.0 por defecto en el momento de escribir este artículo), y _no_ lo vinculé. Lo dejé ahí. Lea algún foro que indique que no se compila con brew python a menos que esté instalado. @ ZyX-I ¿tal vez sepas más sobre esto?
3) Después de brew install python
, use homebrew para instalar vim usando el comando brew install vim
. Luego, ejecute /usr/local/bin/vim --version
y asegúrese de que python3 tenga un signo '+' al lado. Reinicie su shell, y luego /.vimrc debería leer: /Library/Python/2.7/site-packages/powerline/powerline/bindings/vim/
o cualquier directorio que esté mirando.
.... ¡y debería estar funcionando!
Editar: algo de gramática, escribí esto sin café.
Tengo el mismo error cuando actualicé a 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
Después de volver a Python predeterminado del sistema, todavía tengo el mismo error.
@zhongruizhi, ¿
@anirrudh
gracias, pero parece que su solución no es adecuada para mi condición. No estoy usando brew, y estoy usando el python predeterminado del sistema (2.7.10) y vim. (+ Python / dyn -python3).
@anirrudh me funciona de verdad, una buena solución, muchas gracias
@zhongruizhi También solía tener la versión estándar de vim proporcionada por Apple, pero parece estar rota para powerline, la única solución parece ser instalar vim a través de brew, y en cuanto a las versiones de Python, lo abordo en mi publique arriba, pero debe asegurarse de que + python3 sea una cosa, no + python / dyn, ¡que era exactamente lo que mi apple proporcionó a vim!
@anirrudh Gracias por averiguar los detalles. Y funciona.
Encontré la razón y una solución que creo que es más elegante:
CFUNCTYPE en la función _reset_cache () en el archivo:
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ctypes/__init__.py
obtener error de memoria.
Luego salté a este archivo y encontré dicho 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 puede ver, la función CFUNCTYPE en la línea 279 es agregada por unittest en Win64 por cualquier razón. Para los usuarios de mac, esta línea es inútil y provoca un error de memoria en macOS. Así que comento la línea 279 y vuelvo a ejecutar vim, no hay errores con powerline.
Más detalles:
El archivo __init__.py
es un archivo de solo lectura del sistema, y debe ejecutar el comando csrutil disable
en el modo de recuperación de mac (presione el comando + R al arrancar) para deshabilitar la protección de integridad del sistema. Después de reiniciar, puede editar este archivo con permiso de root.
brew install vim --with-lua --with-override-system-vi
y reiniciar shell, fijo
https://github.com/Valloric/YouCompleteMe/issues/3165#issuecomment -425616700
Gracias @ Joshua-Chang
Funcionó para mi
gracias @ Joshua-Chang
vim está bien, pero vi todavía está mal
`Vim: Atrapó la señal mortal SEGV
Error detectado durante la función de procesamiento
línea 4:
Excepción MemoryError: MemoryError () en
Fallo de segmentación: 11`
vim está bien, pero vi todavía está mal
tal vez haya una mejor resolución, pero la arreglé agregando alias vi="vim"
en mi archivo rc de shell
Tengo el mismo problema con @ always77 cuando uso commad git commit --amend
.
@kyriejoshua
prueba la sugerencia de @ Joshua-Chang, me funciona.
prueba la sugerencia de @ Joshua-Chang, me funciona.
Lo intenté.
Funciona cuando uso vim directamente, pero sigue siendo incorrecto cuando ejecuto el comando git commit --amend
o trato de solucionar conflictos en la línea de comandos.
Finalmente, resolví este problema leyendo este artículo. @ siempre77
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 ¿Te importa compartir la solución?
Es mi solucion @josephtyler
cd ~/.vim/bundle/YouCompleteMe
git pull
git submodule update --init --recursive.
python install.py
y reiniciar shell, fijo
Para los usuarios de YCM, utilice los contactos de YCM
Estamos rastreando un problema similar con el sistema Vim aquí: https://github.com/Valloric/YouCompleteMe/issues/3271
Alerta de spoiler: creo que es algo de Mojave, no de YCM.
Para mí, el problema comenzó a aparecer después de que Mojave instaló una "actualización crítica" (por ejemplo, he estado en Mojave durante años con vim / powerline funcionando bien). Resulta que fue simplemente un caso de uso incorrecto de vim
(por ejemplo, /usr/bin/vim
, vim integrado de Apple) en lugar de mi vim de /usr/local/bin/vim
. Fue solo un caso de arreglar mi PATH
; la actualización probablemente lo reordenó.
Acabo de comenzar a usar una mac con una nueva instalación de Mojave y tengo este problema, debe tenerse en cuenta que estoy usando python3.7.
Lo resolví haciendo lo siguiente:
brew install vim
echo "alias vim=/usr/local/Cellar/vim/<VIM_VERSION>/bin/vim" >> ~/.bash_profile
Simplemente reemplace VIM_VERSION con la versión de vim que brew instalada en la primera línea.
Puede agregar otra confirmación de que esto está relacionado con la actualización de macOS Mojave. Voy a tener que hacer un trabajo de comparación con otra máquina que NO se ha actualizado todavía para ver qué bibliotecas del sistema cambiaron. Estoy seguro de que es algo que cambió en la instalación predeterminada de Python 2.7 (.10) o algo con una biblioteca relacionada.
Tenía este mismo problema viniendo de bash a zsh, lo que lo solucionó fue exportar mi PATH
. export PATH=$HOME/bin:/usr/local/bin:$PATH
Ya tenía python 3.7.3, vim (la versión incluida de macvim compilada por [email protected]), y ya tenía Mojave. Solo estaba haciendo la transición a zsh.
Así que me estoy golpeando la cabeza contra una pared tratando de averiguar por qué esto no funciona para mí el día después de que me veo obligado a actualizar mi computadora portátil de trabajo a Mojave. Seguí las guías anteriores y conseguí que la línea eléctrica funcionara en vim nuevamente, pero por mi VIDA, no funcionaría correctamente cuando intento git commit
.
Revisé dos veces en mi .zshrc
que tenía mi editor configurado en vim
. Entonces alias vi=vim
, y todavía no hay dados.
Luego, después de reinstalar powerline y vim unas cien veces diferentes, lo noté en el mensaje de error (este es un mensaje de error mucho más pequeño después de reiniciar la ventana de mi terminal nuevamente y NO iniciar tmux ni nada más:
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.
Allí mismo: /usr/bin/vim
Así que verifiqué dos veces, y bajo y he aquí en mi .gitconfig
tenía las siguientes líneas:
[core]
editor = /usr/bin/vim
Entonces eso se cambió a solo editor = vim
TL; DR : Si aún tiene problemas con la instalación de git commit
vim, verifique que su .gitconfig
no esté apuntando al sistema vim.
Comentario más útil
¡¡SOLUCIÓN!!
1) Averigüe su versión actual de vim. El mío _no_ se compiló con homebrew, pero era la versión predeterminada del sistema, que fue recompilada por Apple para el lanzamiento de Mojave (mirando la fecha). Creo que la declaración anterior es precisa, según la fecha de compilación, pero corrígeme si me equivoco. Ejecute
vim --version
y debería ver que ha sido compilado por[email protected]
.2) Elegí desinstalar la versión elaborada de python @ 2 , e instalé Python a través de brew (se instala 3.7.0 por defecto en el momento de escribir este artículo), y _no_ lo vinculé. Lo dejé ahí. Lea algún foro que indique que no se compila con brew python a menos que esté instalado. @ ZyX-I ¿tal vez sepas más sobre esto?
3) Después de
brew install python
, use homebrew para instalar vim usando el comandobrew install vim
. Luego, ejecute/usr/local/bin/vim --version
y asegúrese de que python3 tenga un signo '+' al lado. Reinicie su shell, y luego /.vimrc debería leer:/Library/Python/2.7/site-packages/powerline/powerline/bindings/vim/
o cualquier directorio que esté mirando..... ¡y debería estar funcionando!
Editar: algo de gramática, escribí esto sin café.