Ich habe Anaconda
(einschließlich Python3.5.2), VIM
(7.4) und Jedi-VIM
auf meinem System installiert. Auf python
dem Linux-System war standardmäßig auch ein installiert.
Die automatische Vervollständigung funktioniert zumindest bei Basispaketen. Aber für Pakete wie numpy
(die in enthalten waren Anaconda
) funktioniert die Fertigstellung nicht.
Mit dem folgenden Befehl in VIM
:
:py3 import sys; print(sys.path)
['/usr/lib/python35.zip',
'/usr/lib/python3.5',
'/usr/lib/python3.5/plat-x86_64-linux-gnu',
'/usr/lib/python3.5/lib-dynload',
'/usr/local/lib/python3.5/dist-packages',
'/usr/lib/python3/dist-packages',
'_vim_path_']
Dies zeigt mir, dass der Anaconda-python
Interpreter und die Pakete nie von verwendet wurden jedi-vim
.
$which python
/home/user1/anaconda3/bin/python
Wie kann ich jedi-vim dazu bringen, auch den Pfad von Anaconda Python zu verwenden, um die automatische Vervollständigung von Paketen zu erhalten?
export PYTHONPATH="/home/user-name/anaconda3/lib/python3.5/site-packages":$PYTHONPATH
zu meinem~/.zshrc
hat jedi-vim, um richtig mit anaconda zu arbeiten.Das kannst du nicht. Die Befehle
:python
und verwenden:python3
immer die kompilierten Interpreter. Wenn Sie eine aktuelle Version von Vim mitpython
und / oderpython3
dynamisch geladen haben (siehe:h python-dynamic
), können Sie verschiedene Interpreter verwendenpythondll
undpythonthreedll
laden. Wenn Sie jedoch CPython durch Anaconda ersetzen, werden Sie von IMO nach Segfaults gefragt (vorausgesetzt, Vim akzeptiert diese überhaupt).quelle
2018+ Jedi-Versionen
Sie können es nur verwenden,
:let jedi#force_py_version=3.8
wenn Sie beispielsweise zur neuesten Python-Version wechseln möchten. Leider gibt es in jedi-vim noch keine Umweltliste. Wir müssen das bauen (es ist jedoch in Jedi verfügbar).Alte Antwort
Grundsätzlich können Sie derzeit nur VIM mit Python 3.5-Unterstützung kompilieren. Das ist wahrscheinlich eine dumme Idee, aber es funktioniert.
Andernfalls werden Cross-Python-Versionen mit https://github.com/davidhalter/jedi/issues/385 unterstützt .
Beachten Sie, dass es möglicherweise möglich ist, den Python-Pfad zu ändern. Dies kann jedoch zu einem SEGFAULT und anderen unerwünschten Verhaltensweisen führen, da Sie Jedi grundsätzlich erlauben, Binärcode von einer anderen Python-Version auszuführen (Ja, das passiert tatsächlich).
quelle
Sie könnten vim mit anaconda kompilieren: Ich habe
./configure --with-features=huge --enable-pythoninterp --with-python-config-dir=~/anaconda/lib/python2.7/config/
mich daran erinnert, dass ich danach ähnliche Tests durchgeführt habe und:py import sys; print sys.path
mir korrekte Ergebnisse gegeben habe.Basierend auf der Websuche könnten Sie vielleicht so etwas tun (zB für 3.4):
./configure --enable-python3interp --with-features=huge --with-python3-config-dir=~/anaconda/lib/python3.4/config-3.4m-x86_64-linux-gnu
quelle
David hat einen gültigen Punkt in Bezug auf die Vermischung von Vim mit verschiedenen Python-Varianten. Wenn eine harte Codierung
PYTHONPATH
in Anaconda Python in.profile
/.bashrc
wirklich zu SEG 11 führt, könnte man einen Shell-Alias verwenden.Vielleicht reicht diese Umgehung aus.
quelle
Ich verwende 32-Bit-Vim, um die Kompatibilität mit anderen Erweiterungen zu gewährleisten, aber die 64-Bit-Python befindet sich aus anderen Gründen zuerst auf meinem PATH. Daher habe ich die 32-Bit-Python mit conda installiert über:
und fügte dies zu meinem hinzu
.vimrc
:Wo
C:/Users/USER/AppData/Local/Continuum/anaconda2
ist das Ergebnis des Anrufs?conda info --base
quelle