Điểm:2

Lỗi "/usr/bin/python: Không có mô-đun có tên virtualenvwrapper" khi mở thiết bị đầu cuối

lá cờ th

Tôi đang sử dụng Ubuntu 20.04 (cài đặt sạch, tôi không nâng cấp từ phiên bản trước) và khi tôi mở một thiết bị đầu cuối mới (chỉ cần Điều khiển+thay thế+t), nó luôn bắt đầu với kết quả hiển thị bên dưới (cũng được hiển thị trong ảnh chụp màn hình sau):

/usr/bin/python: Không có mô-đun nào có tên virtualenvwrapper
virtualenvwrapper.sh: Đã xảy ra sự cố khi chạy móc khởi tạo.

Nếu Python không thể nhập mô-đun virtualenvwrapper.hook_loader,
kiểm tra xem virtualenvwrapper đã được cài đặt chưa
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python và PATH đó là
đặt đúng cách.
/usr/bin/python: Không có mô-đun nào có tên virtualenvwrapper
virtualenvwrapper.sh: Đã xảy ra sự cố khi chạy móc khởi tạo.

Nếu Python không thể nhập mô-đun virtualenvwrapper.hook_loader,
kiểm tra xem virtualenvwrapper đã được cài đặt chưa
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python và PATH đó là
đặt đúng cách.
daniel@daniel-Inspiron-5482:~$

thiết bị đầu cuối không rõ ràng

Tất nhiên tôi đã thử thực hiện đặt lại và khởi động lại.

Trước đây, tôi đã gặp sự cố với các đường dẫn này, vì vậy các lệnh tôi đã thực hiện để sửa đường dẫn là:

xuất VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
xuất VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv

Đây là ~/.bashrc:

# ~/.bashrc: được thực thi bởi bash(1) đối với shell không đăng nhập.
# xem /usr/share/doc/bash/examples/startup-files (trong gói bash-doc)
# ví dụ như

# Nếu không chạy tương tác thì đừng làm gì
trường hợp $- trong
    *tôi*) ;;
      *) trở lại;;
thoát hiểm

# không đặt các dòng trùng lặp hoặc các dòng bắt đầu bằng khoảng trắng trong lịch sử.
# Xem bash(1) để biết thêm tùy chọn
HISTCONTROL=bỏ qua cả hai

# thêm vào tệp lịch sử, không ghi đè lên
shopt -s histappend

# để thiết lập độ dài lịch sử, hãy xem HISTSIZE và HISTFILESIZE trong bash(1)
LỊCH SỬ=1000
HISTFILESIZE=2000

# kiểm tra kích thước cửa sổ sau mỗi lệnh và nếu cần,
# cập nhật giá trị của LINES và COLUMNS.
shopt -s checkwinsize

# Nếu được đặt, mẫu "**" được sử dụng trong ngữ cảnh mở rộng tên đường dẫn sẽ
# khớp tất cả các tệp và không hoặc nhiều thư mục và thư mục con.
#shopt -s sao cầu

# bớt thân thiện hơn đối với các tệp đầu vào không phải văn bản, xem lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"

# đặt biến xác định chroot mà bạn làm việc (được sử dụng trong lời nhắc bên dưới)
nếu [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; sau đó
    debian_chroot=$(mèo /etc/debian_chroot)
fi

# đặt lời nhắc ưa thích (không màu, trừ khi chúng tôi biết chúng tôi "muốn") màu)
trường hợp "$TERM" trong
    xterm-color|*-256color) color_prompt=yes;;
thoát hiểm

# bỏ ghi chú cho dấu nhắc màu, nếu thiết bị đầu cuối có khả năng; quay
# tắt theo mặc định để không làm người dùng mất tập trung: tiêu điểm trong cửa sổ đầu cuối
# phải ở đầu ra của lệnh, không phải ở dấu nhắc
#force_color_prompt=yes

nếu [ -n "$force_color_prompt" ]; sau đó
    nếu [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; sau đó
    # Chúng tôi có hỗ trợ màu sắc; giả sử nó tương thích với Ecma-48
    # (ISO/IEC-6429). (Thiếu hỗ trợ như vậy là cực kỳ hiếm, và như vậy
    # một trường hợp sẽ có xu hướng hỗ trợ setf hơn là setaf.)
    color_prompt=có
    khác
    color_prompt=
    fi
fi

nếu [ "$color_prompt" = yes ]; sau đó
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\ [\033[00m\]\$ '
khác
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
bỏ đặt color_prompt force_color_prompt

# Nếu đây là xterm, hãy đặt tiêu đề thành user@host:dir
trường hợp "$TERM" trong
xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
    ;;
*)
    ;;
thoát hiểm

# bật hỗ trợ màu của ls và cũng thêm các bí danh tiện dụng
nếu [ -x /usr/bin/dircolors ]; sau đó
    kiểm tra -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    bí danh ls='ls --color=auto'
    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'

    bí danh grep='grep --color=auto'
    bí danh fgrep='fgrep --color=auto'
    bí danh egrep='egrep --color=auto'
fi

# cảnh báo và lỗi GCC màu
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'

# một số bí danh ls khác
bí danh ll='ls -alF'
bí danh la='ls -A'
bí danh l='ls -CF'

# Thêm bí danh "cảnh báo" cho các lệnh chạy dài. Sử dụng như vậy:
#ngủ10; báo động
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/ ^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'

# Định nghĩa bí danh.
# Bạn có thể muốn đặt tất cả các phần bổ sung của mình vào một tệp riêng biệt như
# ~/.bash_aliases, thay vì thêm chúng trực tiếp vào đây.
# Xem /usr/share/doc/bash-doc/examples trong gói bash-doc.

nếu [ -f ~/.bash_aliases ]; sau đó
    . ~/.bash_aliases
fi

# bật các tính năng hoàn thành có thể lập trình (bạn không cần bật
# cái này, nếu nó đã được kích hoạt trong /etc/bash.bashrc và /etc/profile
# nguồn /etc/bash.bashrc).
nếu ! shopt -oq posix; sau đó
  nếu [ -f /usr/share/bash-completion/bash_completion ]; sau đó
    . /usr/share/bash-completion/bash_completion
  yêu tinh [ -f /etc/bash_completion ]; sau đó
    . /etc/bash_completion
  fi
fi
# Trình bao bọc môi trường ảo
nguồn /usr/local/bin/virtualenvwrapper.sh
# Trình bao bọc môi trường ảo
nguồn /usr/local/bin/virtualenvwrapper.sh

# >>> khởi tạo conda >>>
#!! Nội dung trong khối này được quản lý bởi 'conda init'!!
__conda_setup="$('/home/daniel/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
nếu [ $? -eq 0 ]; sau đó
    đánh giá "$__conda_setup"
khác
    nếu [ -f "/home/daniel/anaconda3/etc/profile.d/conda.sh" ]; sau đó
        . "/home/daniel/anaconda3/etc/profile.d/conda.sh"
    khác
        xuất PATH="/home/daniel/anaconda3/bin:$PATH"
    fi
fi
bỏ đặt __conda_setup
# <<< khởi tạo conda <<<

Tôi cũng đã cài đặt các gói virtualenvvirtualenvwrapper và cập nhật bằng cách sử dụng sudo apt, nhưng vấn đề vẫn tích lũy.

Vấn đề với thiết bị đầu cuối của tôi thực sự là gì?

Điểm:2
lá cờ ca

Vấn đề là với mục này trong của bạn ~/.bashrc tập tin:

# Trình bao bọc môi trường ảo
nguồn /usr/local/bin/virtualenvwrapper.sh
# Trình bao bọc môi trường ảo
nguồn /usr/local/bin/virtualenvwrapper.sh
  1. Đó là một mục trùng lặp. Bạn chỉ cần một cái, vì vậy chỉ cần loại bỏ cái kia.

  2. Đảm bảo rằng đường dẫn đến virtualenvwrapper.sh là đúng bằng cách chạy lệnh sau và thay thế /usr/local/bin/virtualenvwrapper.sh với đầu ra của lệnh:

    mà virtualenvwrapper.sh
    

    Nếu đường dẫn đã là đường dẫn chính xác thì thật tuyệt! Chỉ cần bỏ qua bước này.

  3. Bạn cần thêm các lệnh này (mà bạn cũng đã đề cập trong câu hỏi của mình) ngay trước nguồn /usr/local/bin/virtualenvwrapper.sh trong bạn ~/.bashrc:

    xuất VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
    xuất VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
    

    Một lần nữa, bạn nên đảm bảo rằng các đường dẫn là chính xác.

  4. Sau khi thực hiện các thao tác trên, hãy khởi động lại thiết bị đầu cuối của bạn hoặc chạy:

    nguồn ~/.bashrc
    

Thiết bị đầu cuối của bạn sẽ khởi động bình thường ngay bây giờ, không có văn bản lỗi và virtualenvwrapper nên làm việc như mong đợi!

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.