tmux एक अलग अजगर स्रोत का उपयोग करने के लिए एनाकोंडा का कारण बन रहा है


12

ठीक है, तो मैं अपने एनाकोंडा वातावरण में हूं और मैंने किस अजगर को दौड़ाया। मुझे मिला

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

अब अगर मैं tmux शुरू करता हूं, तो रन सोर्स सक्रिय करें env1, फिर कौन सा अजगर, मुझे मिलता है

/home/comp/anaconda3/bin/python

हालांकि मेरे पास मेरा वातावरण सक्रिय है। मैं एनाकोंडा को tmux के अंदर समान पथ कैसे देख सकता हूं?

जवाबों:


15

समाधान conda पर्यावरण को निष्क्रिय करने के लिए लगता है, तो tmux शुरू करें, फिर tmux के अंदर पर्यावरण को फिर से सक्रिय करें।


2
अजीब समाधान लेकिन काम करता है ...
LYu

यह वाकई अजीब है।
ज़िरकोनकोड

2
मैं upvoting कर रहा हूं क्योंकि यह वह समाधान है जो मेरे लिए काम करता है, हालांकि यह वास्तव में आदर्श समाधान से बहुत दूर है
johnchase

2

Tmux सेशन शुरू करने के बाद मेरे पास निम्नलिखित होता है (बिना किसी सक्रिय एविए के कोंडा)।

जब मैं पहली बार Tmux सत्र के अंदर करता हूं:

conda activate myEnv

मुझे मिला

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'.

अगर इसके बजाय मैं करता हूं:

source deactivate
conda activate myEnv

सब कुछ ठीक काम करता है। which pythonसही रास्ते की ओर इशारा करता है।


2

यह व्यवहार के ~/.profileबजाय TMux सोर्सिंग के कारण होता है ~/.bashrc। मेरा ~/.profileयह है:

# 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

आप देख सकते हैं कि पहले ~/.bashrc ली जाती है और उसके बाद ~/bin और ~/.local/binकर रहे हैं prependedजैसा कि मैंने खुद अनुभव किया , यह condaहिकूप का कारण बनता है।

समाधान यह होगा कि PATH से छेड़छाड़ करने वाले दो ब्लॉकों की टिप्पणी करें ~/.profile

संपादित करें (2019/09/24): टीएमक्स को कॉन्फ़िगर करने के लिए एक और भी बेहतर लगता है जैसे कि यह एक लॉगिन शेल नहीं बल्कि केवल एक सामान्य है। जुड़े हुए प्रश्न के उत्तर देखें।


1

चल रहा है:

conda activate env1

के बजाय:

source activate env1

जब अंदर tmux ने मेरे लिए काम किया।


1

मुझे लगता है कि tmux हमेशा आपके शेल के लिए प्रोफ़ाइल को कॉल करेगा, न कि केवल rc के लिए। इसलिए यदि आप bash का उपयोग कर रहे हैं जैसे I do, तो यह कॉल करेगा / etc / प्रोफाइल, जिसमें path_helper को कॉल होगा।

इसे ठीक करने के लिए, इसमें बदलें /etc/profile:

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

आप पार्टी का उपयोग कर रहे हैं, तो भी किसी भी बदलने export PATH=$PATH:/fooमें .bashrcकरने के लिए

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

तब आप टर्मिनल को पुनरारंभ करें (उदाहरण के लिए Iterm)। सब कुछ अच्छा होना चाहिए!



0

मेरे पास एक ही समस्या थी, लेकिन मैं वास्तव में किसी भी समाधान को पसंद नहीं करता था क्योंकि वे हर बार जब मैं कॉनडा को निष्क्रिय और सक्रिय करता था, तो मैं उसमें शामिल हो जाता था tmux। इसलिए इसके बजाय, मैंने जोड़ा कि मेरे नीचे क्या है .tmux.conf:

महत्वपूर्ण संस्करण: यह कोड मेरे लिए काम करता है, क्योंकि मैं वर्तमान में एक zsh शेल चला रहा हूं और यह वह जगह है जहां मेरी सेटिंग्स संग्रहीत हैं। आपका मानक शेल भिन्न हो सकता है, अपने शेल स्थान को कमांड का उपयोग करने के लिए खोजें echo "$SHELL"और /bin/zshमेरे उत्तर में अपने शेल पथ के साथ बदलें ।

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

एक बार हो जाने के बाद, अपनी .tmux.confफ़ाइल को संसाधन और परिवर्तनों को सक्रिय किया जाना चाहिए। यह tmuxआपको .bash_profileकॉनडा सहित अपने में जो भी सेटिंग्स लोड करने की अनुमति होनी चाहिए ।


कृपया यह न समझें कि उसका खोल है zsh(वह इसका उल्लेख नहीं करता है)। यदि इसके बिना लोग आपके उत्तर का उपयोग करते हैं तो उनके पास समस्याएँ हो सकती हैं। शायद आप भी एक छोटे से कारण है कि यह मुद्दा है, क्या है की तरह हल करता है के बारे में अधिक व्याख्या करनी चाहिए -gवहाँ, क्या डिफ़ॉल्ट मान करता है, आदि ...
ज़िप

अच्छी बात है, मैंने दूसरे गोले वाले लोगों के बारे में बिल्कुल नहीं सोचा। मैं स्पष्ट करने के उत्तर को बदल दूंगा।
सिद्दार्थ रघुवंशी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.