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.