2013-04-11 41 views
5

Tôi có câu hỏi đầu cuối cơ bản. Tôi vừa cài đặt Canopy của enthought cho Python trên Snow Leopard, và (Canopy 64bit) liên tục xuất hiện khi tôi đang làm việc trên dòng lệnh.Hiển thị "Tán" trên dòng lệnh

EX: (Canopy 64bit) Macbook ~ [username] $

Tôi đã thử chỉnh sửa tập tin .bashrc của tôi, không có kết quả.

bashrc hiện có này:

# System-wide .bashrc file for interactive bash(1) shells. 
if [ -z "$PS1" ]; then 
    return 
fi 

PS1="Macbook~\u\$" 
# Make bash check its window size after a process completes 
shopt -s checkwinsize 

-

Có cách nào để ngăn chặn "(Canopy 64bit)" hiển thị?

Trả lời

1

Thuộc tính .bash_profile. Nhưng có thể bạn sẽ phải đăng xuất và đăng nhập lại để nó có hiệu lực, khi bạn xóa nó.

Có một tùy chọn khi bạn cài đặt để đặt Canopy làm môi trường python mặc định của bạn. Thật không may, dường như không có cách nào để thay đổi điều đó trong cài đặt ứng dụng.

+0

Điều này không chỉ loại bỏ các văn bản bổ sung trong PS1 của bạn, nhưng cũng thay đổi PATH của bạn, remo ving các thư mục kịch bản tán từ PATH của bạn. Vì vậy, bạn sẽ phải cung cấp đường dẫn đầy đủ cho bất kỳ tập lệnh nào được cài đặt bởi Canopy để chạy chúng. – punchagan

1

Comment ra mệnh đề if tại dòng 56--70 trong

~/Library/Enthought/Canopy_64bit/User/bin/kích hoạt

+4

Hoặc đặt biến môi trường 'VIRTUAL_ENV_DISABLE_PROMPT = true' trong .bashrc hoặc .bash_profile của bạn. – punchagan

7

Để xây dựng trên câu trả lời trước: Canopy được dựa trên một 3 hệ thống lớp, lớp 0 chứa tối thiểu cho giao diện Canopy GUI hoạt động; lớp 1 chứa tất cả các gói "Hệ thống", được phân phối với Canopy và có thể được cập nhật khi các phiên bản mới xuất hiện; cuối cùng, lớp 2 là môi trường "Người dùng" nơi người dùng có thể cài đặt bất kỳ gói nào họ thích. Bằng cách này, nếu người dùng cài đặt một gói phá vỡ Canopy, người dùng có thể luôn quay trở lại lớp 1 hoặc thậm chí là lớp 0 để đặt lại hệ thống.

Ba lớp được quản lý bằng thư viện phổ biến, virtualenv. Trong virtualenv, bạn có thể tạo các môi trường Python riêng biệt bằng bộ thư viện riêng của chúng. Ví dụ, nếu bạn đang phát triển một số ứng dụng, mỗi ứng dụng đòi hỏi các gói xung đột, bạn có thể phát triển chúng trong các môi trường ảo riêng biệt. Sử dụng virtualenv, Canopy có thể thực hiện tương tự: bạn có thể có nhiều môi trường "Người dùng" (mặc dù tính năng đó chưa được hiển thị thông qua GUI).

Một kích hoạt một môi trường ảo sử dụng "kích hoạt" của kịch bản, mà Canopy làm trong .bash_profile dòng

~/Library/Enthought/Canopy_64bit/User/bin/activate

như chỉ ra bởi đôn.

Theo mặc định, virtualenv sửa đổi dấu nhắc bash của bạn để bạn có thể nhớ môi trường ảo bạn đang ở, đó là lý do tại sao bạn nhìn thấy dấu nhắc "(Canopy 64bit)". Để loại bỏ nó, bạn có thể loại bỏ các dòng từ .bash_profile, nhưng điều này có nghĩa rằng bạn sẽ phải tự hệ thống của bạn để thực thi python bên phải và các thư viện bên phải.

giải pháp punchagan chỉ đơn giản là tắt chức năng mặc định virtualenv nhanh chóng, rời khỏi môi trường ảo Canopy bản thân còn nguyên vẹn:

VIRTUAL_ENV_DISABLE_PROMPT=true

+0

Canopy có cài đặt virtualenv ở đâu đó không? Hay đây là một số hành vi giống như virtualenv được cung cấp bởi Canopy? virtualenv --help dường như không hoạt động trong cài đặt Canopy của tôi. –

+0

Tán là sử dụng một backport của gói 'venv' có sẵn trong Python 3. Thông tin thêm tại https://enthought.zendesk.com/entries/21802240-Use-venv-not-virtualenv-with-Canopy-Python – pberkes

1

Để thoát khỏi sự bổ sung không cần thiết để nhắc bash của bạn, Canopy gần và sau đó mở
~/Library/Enthought/Canopy_64bit/Người dùng/bin/kích hoạt trong trình chỉnh sửa văn bản. Nhận xét các dòng như sau (đây không phải là nhận xét trong bản gốc):

#if [ -z "$VIRTUAL_ENV_DISABLE_PROMPT" ] ; then 
# _OLD_VIRTUAL_PS1="$PS1" 
# if [ "x(Canopy 64bit) " != x ] ; then 
# PS1="(Canopy 64bit) $PS1" 
# else 
# if [ "`basename \"$VIRTUAL_ENV\"`" = "__" ] ; then 
#  # special case for Aspen magic directories 
#  # see http://www.zetadev.com/software/aspen/ 
#  PS1="[`basename \`dirname \"$VIRTUAL_ENV\"\``] $PS1" 
# else 
#  PS1="(`basename \"$VIRTUAL_ENV\"`)$PS1" 
# fi 
# fi 
# export PS1 
#fi 

Bây giờ đóng phiên bash của bạn và khởi động lại nó. Lời nhắc sẽ trở lại bình thường.

0

Bạn không cần phải nhận xét đầy đủ các dòng đó trong ~/Library/Enthought/Canopy_64bit/User/bin/activate. Tôi chỉ nhận xét ra các dòng

 #PS1="(Canopz 64bit) $PS1" 

và thay thế nó bằng

PS1="$PS1" 

vì vậy bạn chỉ để cho Canopy làm những gì nó đã làm nhưng thoát khỏi văn bản thêm anoying trong dấu nhắc.

Tốt nhất.

0

Việc chỉnh sửa kịch bản kích hoạt hoạt động như Arkog đã trả lời, nhưng nếu khi tôi chỉ nhận xét ra các dòng Tôi có một cái gì đó như:

-bash:/Users // Library/Enthought/Canopy_64bit/User/bin/kích hoạt: dòng 60: lỗi cú pháp gần bất ngờ thẻ else' -bash: /Users/<username>/Library/Enthought/Canopy_64bit/User/bin/activate: line 60: khác'

Vì vậy, tôi tìm thấy nó tốt hơn để chỉ cần thay thế dòng đó với:

$ PS1 = $ PS1

+0

Nhận xét ra các dòng là một lỗi cú pháp bởi vì nếu không có tuyên bố trước người khác. Bạn có thể thay thế nó bằng ký tự ':', (câu lệnh NOP bash) hoặc 'true'. Bạn nên xóa '$' khỏi đầu thay thế của mình để nó không gây ra lỗi cú pháp khác. –

Các vấn đề liên quan