tmux ทำให้แอนคอนดาใช้แหล่งไพ ธ อนอื่น


11

ตกลงดังนั้นฉันอยู่ในสภาพแวดล้อมของฉันและฉันวิ่งงูหลามที่ ฉันเข้าใจ

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

ตอนนี้ถ้าฉันเริ่ม tmux จากนั้นให้ run source enable env1 จากนั้นฉันจะได้รับ python แบบไหน

/home/comp/anaconda3/bin/python

แม้ว่าฉันจะเปิดใช้งานสภาพแวดล้อมของฉัน ฉันจะทำให้งูใหญ่มองเห็นเส้นทางเดียวกันภายใน tmux ได้อย่างไร?

คำตอบ:


15

วิธีแก้ปัญหาดูเหมือนว่าจะปิดใช้งานสภาพแวดล้อม conda จากนั้นเริ่ม tmux จากนั้นเปิดใช้งานสภาพแวดล้อมภายใน tmux


2
วิธีการแก้ปัญหาแปลก ๆ แต่งาน ...
lyu

นั่นแปลกจริง ๆ
ZirconCode

2
ฉัน upvoting เพราะนี่เป็นวิธีแก้ปัญหาที่ได้ผลสำหรับฉัน แต่มันห่างไกลจากทางออกในอุดมคติจริงๆ
johnchase

2

ต่อไปนี้เกิดขึ้นกับฉันหลังจากเริ่มต้นเซสชัน Tmux (โดยไม่มี conda ที่มี env ที่ใช้งานอยู่)

เมื่อฉันแรกทำภายในเซสชัน 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

พฤติกรรมนี้เกิดจากการจัดหา TMux แทน~/.profile นี่คือ~/.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การ hickup

~/.profileวิธีการแก้ปัญหาที่จะแสดงความคิดเห็นออกทั้งสองบล็อกเส้นทางการจัดการใน

แก้ไข (2019/09/24):ดูเหมือนว่าจะดีกว่าที่จะกำหนดค่า 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

ฉันมีปัญหาเดียวกัน แต่ฉันไม่ชอบวิธีแก้ไขปัญหาใด ๆ เพราะพวกเขาเกี่ยวข้องกับการเลิกใช้งานและเปิดใช้งาน Conda ทุกครั้งที่ฉันโหลดเข้าสู่ tmux ดังนั้นแทนที่จะเพิ่มสิ่งที่ด้านล่างของฉัน.tmux.conf:

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

เมื่อเสร็จแล้วเพียงแค่ใช้ไฟล์. tmux.conf ของคุณและการเปลี่ยนแปลงควรจะเปิดใช้งาน สิ่งนี้จะทำให้ tmux โหลดการตั้งค่าใด ๆ ที่คุณมีใน.bash_profileConda ของคุณ


โปรดอย่าคิดว่าเปลือกของเขาคือzsh(เขาไม่ได้พูดถึงมัน) หากคนที่ไม่มีมันใช้คำตอบของคุณพวกเขาอาจมีปัญหา บางทีคุณควรอธิบายเพิ่มเติมอีกเล็กน้อยว่าทำไมมันถึงสามารถแก้ปัญหาได้เช่นเดียวกับที่-gมีอยู่สิ่งที่เป็นค่าเริ่มต้นทำอะไร ฯลฯ ...
Zip
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.