tmux는 아나콘다가 다른 파이썬 소스를 사용하게합니다.


11

좋아, 나는 내 아나콘다 환경에 있으며 어떤 파이썬을 실행했다. 나는 얻다

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

이제 tmux를 시작하면 source activate env1을 실행 한 다음 어떤 파이썬을 얻습니까?

/home/comp/anaconda3/bin/python

환경을 활성화했지만 아나콘다가 tmux 내부에서 동일한 경로를 볼 수있게하려면 어떻게해야합니까?

답변:


15

해결책은 conda 환경을 비활성화 한 다음 tmux를 시작한 다음 tmux 내부의 환경을 다시 활성화하는 것 같습니다.


2
이상한 해결책이지만 작동합니다 ...
LYu

정말 이상합니다.
ZirconCode

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된다 앞에 추가 . 내가 경험conda 한대로 이것은 엉망이됩니다.

해결책은에서 PATH를 조작하는 두 블록을 주석 처리하는 것입니다 ~/.profile.

편집 (2019/09/24) : TMux가 로그인 쉘을 생성하지 않고 정상적인 쉘을 생성하도록 구성하는 것이 더 좋습니다. 링크 된 질문에 대한 답변을 참조하십시오.


1

달리는:

conda activate env1

대신에:

source activate env1

내부에서 TMux가 나를 위해 일했습니다.


1

tmux가 항상 rc뿐만 아니라 쉘의 프로파일을 호출한다는 것을 알았습니다. 따라서 bash를 사용하는 경우 / etc / profile을 호출하면 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
nano ~/.bash_profile

다음 줄을 추가하십시오.

source deactivate env1
source activate env1

나를 위해 일했다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.