Résolution du problème selon lequel MacVim installé par Homebrew n'a pas été construit par python de pyenv

C'est une solution ad hoc. Je pense que les détails sont faux, mais pour le moment, cela a fonctionné, je vais donc le résumer. Veuillez me faire savoir s'il existe une méthode bonne ou correcte.

C'est un article pour sauver ceux qui s'inquiètent de tels problèmes

Instructions d'installation de MacVim

Appuyez sur le référentiel macvim

brew install macvim n'installe que le pré-construit, donc récupérez le code source du référentiel macvim et construisez-le et installez-le.

$ brew tap macvim-dev/macvim

Installez pyenv Python avec DLL

Si vous installez normalement avec pyenv, la DLL requise pour construire MacVim ne sera pas créée, alors ajoutez les variables d'environnement suivantes et compilez. python3 donne une erreur telle que -undefined dynamic_lookup est manquant et pip install greenlet.

** Remplacez le numéro de version par celui que vous utilisez. ** **

PYTHON_CONFIGURE_OPTS="--enable-shared" \
    LDSHARED="clang -bundle" \
    LDCXXSHARED="clang++ -bundle" \
    BLDSHARED="clang -bundle -lpython2.7" \
    pyenv install 2.7.12

PYTHON_CONFIGURE_OPTS="--enable-shared" \
    LDSHARED="clang -undefined dynamic_lookup -bundle"\
    LDCXXSHARED="clang++ -undefined dynamic_lookup -bundle" \
    BLDSHARED="clang -bundle -undefined dynamic_lookup -lpython3.5m" \
    pyenv install 3.5.2

Modifier les paramètres de construction avec Brew Edit

Puisque l'argument de construction est défini dans le code source, réécrivez le code source avec brew edit. (Il m'a fallu un jour pour le remarquer car je suis nouveau dans le brassage.)

$ brew edit macvim-dev/macvim/macvim

Le code Ruby sera affiché, alors changez l'installation par défaut en haut. La partie commentée est la valeur par défaut. Seul Python3 installé par Homebrew peut être vu, alors changez le chemin pour faire référence à Python3 de pyenv. Puisque python2 essaie également de faire référence à la bibliothèque système MacOS, ajoutez des variables et des chemins afin que python2 fasse également référence à python2 dans pyenv. ** Remplacez la partie enushi par votre propre nom d'utilisateur. ** **

  def install
    perl_version = '5.16'
    ENV.append 'VERSIONER_PERL_VERSION', perl_version
    ENV.append 'VERSIONER_PYTHON_VERSION', '2.7'
    ENV.append 'vi_cv_path_python', "/Users/enushi/.pyenv/versions/2.7.10/bin/python2"
    ENV.append 'vi_cv_path_python3', "/Users/enushi/.pyenv/versions/3.4.3/bin/python3"
    ENV.append 'vi_cv_path_plain_lua', "#{HOMEBREW_PREFIX}/bin/lua"
    ENV.append 'vi_cv_dll_name_perl', "/System/Library/Perl/#{perl_version}/darwin-thread-multi-2level/CORE/libperl.dylib"
    ENV.append 'vi_cv_dll_name_python3', "/Users/enushi/.pyenv/versions/3.4.3/lib/libpython3.4m.dylib"
    ENV.append 'vi_cv_dll_name_python', "/Users/enushi/.pyenv/versions/2.7.10/lib/libpython2.7.dylib"
    #ENV.append 'vi_cv_path_python3', "#{HOMEBREW_PREFIX}/bin/python3"
    #ENV.append 'vi_cv_path_plain_lua', "#{HOMEBREW_PREFIX}/bin/lua"
    #ENV.append 'vi_cv_dll_name_perl', "/System/Library/Perl/#{perl_version}/darwin-thread-multi-2level/CORE/libperl.dylib"
    #ENV.append 'vi_cv_dll_name_python3', "#{HOMEBREW_PREFIX}/Frameworks/Python.framework/Versions/3.5/Python"

Installation de MacVim

--with-correctement-lié-python2-python3 est requis. --with-override-system-vim est une option qui remplace le vim par défaut (vim s'exécutant sur la console) dans le système d'exploitation par mvim -v. Utilisez-le comme vous le souhaitez.

brew install --HEAD --with-properly-linked-python2-python3 --with-override-system-vim macvim-dev/macvim/macvim

Confirmation après l'installation

Démarrez mvim et exécutez la commande suivante.

:python print(sys.path)
:py3 print(sys.path)

Le chemin de sortie doit être le python de pyenv. De plus, s'il peut être exécuté en continu, l'effet de --with-correctement-linked-python2-python3 est obtenu.

référence

Eh bien. Bonne vie de Vim

Recommended Posts

Résolution du problème selon lequel MacVim installé par Homebrew n'a pas été construit par python de pyenv
L'histoire selon laquelle la version de python 3.7.7 n'était pas adaptée à Heroku
Installez le dernier Python de pyenv installé par homebrew
Résolution du problème selon lequel l'image n'était pas affichée dans ROMol lors du chargement avec PandasTools.LoadSDF.
tkinter n'a pas pu être utilisé avec python installé par pyenv de anyenv
L'histoire selon laquelle l'environnement Homebrew a été époustouflé lors de l'installation d'Anaconda
Le problème que la version de Vue CLI n'a pas augmenté
Le 16ème problème d'écriture en temps réel hors ligne a été résolu avec Python
Le 15e problème d'écriture en temps réel hors ligne a été résolu avec python
Pandas du débutant, par le débutant, pour le débutant [Python]
L'histoire que XGBoost a finalement été installé
Je pensais que c'était la même chose que python, et j'étais accro au problème que l'interpréteur ruby ne démarre pas.
Il semble que la version de pyflakes ne soit pas la dernière lorsque flake8 est installé
J'ai installé Pygame avec Python 3.5.1 dans l'environnement de pyenv sur OS X
Solution au problème que vous ne pouvez pas activer en mettant conda dans pyenv
Vérifiez le fonctionnement d'OpenCV3 installé par Anaconda
Mathématiques Todai 2016 résolues avec Python
J'ai résolu le problème le plus profond d'Hiroshi Yuki.
pyenv ne fonctionne pas avec tcl-tk installé par homebrew.
À propos du fait que le contenu de l'impression Python n'est pas visible dans les journaux du docker
[Python] Un programme qui compte le nombre de vallées
Ne pas être conscient du contenu des données en python
L'histoire selon laquelle la valeur de retour de tape.gradient () était None
Notez qu'un problème a été résolu lors de l'introduction de jupyter-notebook.
L'attitude que les programmeurs devraient avoir (Le Zen de Python)
[Python] Un programme qui compare les positions des kangourous.
Utilisez python installé par Pyenv avec Sublime REPL de Sublime Text 3
Une bibliothèque qui surveille la vie et la mort d'autres machines en envoyant un ping à partir de Python
__init__ appelé par wxPython ou Tkinter était un appel __init__ de la classe héritée en Python
L'histoire selon laquelle pyenv n'a pas passé la commande d'exécution python PATH
Un mémorandum (masOS) qui importe tkinter n'a pas pu être fait avec python installé à partir de pyenv