tmux anaconda'nın farklı bir python kaynağı kullanmasına neden oluyor


12

Tamam, bu yüzden anakonda ortamımdayım ve hangi python'u çalıştırdım. alırım

/home/comp/anaconda3/envs/env1/bin/python

Şimdi eğer tmux'u başlatırsam, kaynak etkinleştirmek env1'i çalıştırırsam, o zaman hangi python'u alırım

/home/comp/anaconda3/bin/python

çevremi etkinleştirmiş olmama rağmen. Anaconda'nın tmux içinde aynı yolu görmesini nasıl sağlayabilirim?

Yanıtlar:


15

Çözüm, conda ortamını devre dışı bırakmak, sonra tmux'u başlatmak, sonra tmux içindeki ortamı yeniden etkinleştirmek gibi görünüyor.


2
Tuhaf bir çözüm ama işe yarıyor ...
LYu

Gerçekten tuhaf.
ZirconCode

2
Bu konuda benim için çalışan bir çözüm, ancak gerçekten ideal çözümden çok uzak
johnchase

2

Bir Tmux seansına başladıktan sonra (conda aktif bir env'ye sahip olmadan) bana aşağıdakiler olur.

Tmux oturumu içinde ilk yaptığımda:

conda activate myEnv

alırım

CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
To initialize your shell, run

    $ conda init <SHELL_NAME>

Currently supported shells are:
  - bash
  - fish
  - tcsh
  - xonsh
  - zsh
  - powershell

See 'conda init --help' for more information and options.

IMPORTANT: You may need to close and restart your shell after running 'conda init'.

Bunun yerine ben:

source deactivate
conda activate myEnv

Her şey yolunda gidiyor. which pythondoğru yolu gösterir.


2

Bu davranış, ~/.profileyerine TMux kaynağı nedeniyle oluşur ~/.bashrc. Benim ~/.profilebu:

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
    . "$HOME/.bashrc"
    fi
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
    PATH="$HOME/.local/bin:$PATH"
fi

Bunu görebilirsiniz ilk ~/.bashrc kaynaklı ve daha sonra ~/bin ve ~/.local/binedilir de başa . Kendimi tecrübe ettiğim için bu condahickup'a neden oluyor.

Çözüm, PATH'ı manipüle eden iki bloğu yorumlamak olacaktır ~/.profile.

Edit (2019/09/24): Daha da iyisi, TMux'u bir giriş kabuğu değil, sadece normal bir kabuk oluşturacak şekilde yapılandırmak gibi görünüyor. Bağlantılı sorunun cevaplarına bakın.


1

Koşu:

conda activate env1

Onun yerine:

source activate env1

İçimde tmux benim için çalıştı.


1

Ben tmux sadece rc değil, her zaman kabuk için profili arayacağını görüyorum. Yani benim gibi bash kullanıyorsanız, path_helper çağrısı olacak / etc / profile çağırır.

Bunu düzeltmek için şu şekilde değiştirin /etc/profile:

if [[ -z $TMUX ]] && [ -x /usr/libexec/path_helper ]; then
        eval `/usr/libexec/path_helper -s`
fi

Eğer bash kullanıyorsanız, aynı zamanda herhangi bir değişiklik export PATH=$PATH:/foode .bashrckarşı

if [[ -z $TMUX ]]; then
  export PATH=$PATH:/foo
fi

daha sonra terminali yeniden başlatın (örneğin Iterm). Her şey iyi olmalı!


0
nano ~/.bash_profile

Aşağıdaki satırları ekleyin:

source deactivate env1
source activate env1

benim için çalıştı.


0

Aynı sorunu yaşadım, ancak Conda'yı her yüklediğimde devre dışı bırakmayı ve etkinleştirmeyi içerdiğinden çözümlerin hiçbirini gerçekten sevmedim tmux. Bunun yerine, aşağıdakilere aşağıdakileri ekledim .tmux.conf:

ÖNEMLİ DÜZENLEME: Bu kod benim için çalışıyor, çünkü şu anda bir zsh kabuğu çalıştırıyorum ve burası ayarlarımın saklandığı yer. Standart kabuğunuz farklı olabilir, kabuk konumunuzu bulmak için komutu kullanın echo "$SHELL"ve cevabımdaki /bin/zshkendi kabuk yolunuzla değiştirin.

set -g default-command "/bin/zsh"

Bittiğinde, sadece .tmux.confdosyanızı kaynak ve değişiklikler etkinleştirilmelidir. Bu, Conda dahil olmak üzere tmuxsahip olduğunuz ayarları yüklemenize izin vermelidir .bash_profile.


Lütfen kabuğunun olduğunu düşünmeyin zsh(bahsetmez). Eğer onsuz insanlar cevabınızı kullanırsa, sorunları olabilir. Belki de sorunu neden çözdüğü, var olan gibi -g, varsayılan değerin ne yaptığı, vb. Gibi biraz daha açıklamalısınız ...
Zip

İyi bir nokta, başka kabukları olan insanlar hakkında hiç düşünmedim. Bunu açıklığa kavuşturmak için cevabı değiştireceğim.
Siddarth Raghuvanshi
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.