2012-07-09 20 views
10

Tôi cố gắng để cấu hình Python cho Emacs của tôi trên Ubuntu, và tôi nhận được lỗi sau:/usr/bin/env: python2: Không có tập tin hoặc thư mục

/usr/bin/env: python2: No such file or directory 

Ai đó có thể giúp tôi với nó? Tôi có thể làm gì để giải quyết nó?

+0

Khi nào thì lỗi này xảy ra? – dwerner

+0

Tôi không chắc tại sao điều này bị đóng là 'tắt chủ đề' vì câu hỏi là về việc thiết lập môi trường lập trình Python trên Ubuntu và thường là dòng đầu tiên của mã Python trên hệ thống UNIX. Dưới đây là giải thích về dòng này và cách cấu hình nó cho hệ thống của bạn: http: //stackoverflow.com/questions/2429511/why-do-people-write-usr-bin-env-python-on-the-first -line-of-a-python-script – Will

Trả lời

6

Có lẽ đó là sự thật. Các liên kết /usr/bin/python2 -> (the real one) nên được cung cấp bởi gói Python của bạn, nhưng đó rõ ràng không phải là trường hợp, cũng không phải trên bất kỳ vị trí khác, nơi nó có thể được tìm thấy thông qua các $PATH.

Bạn nên đặt liên kết đã nói trong đường dẫn của bạn tại (a) địa điểm thích hợp.

+0

Nhưng tôi có python trong đường dẫn, khi tôi gõ "python" trong dòng lệnh của tôi, nó sẽ mở terminal. Vì vậy, làm thế nào để tôi bao gồm trong quá khứ theo khuyến cáo của bạn? – murtaza52

+0

Điều đó thật kỳ lạ. Thông thường, 'env' nên kiểm tra đường dẫn. Nó cũng phụ thuộc vào trường hợp nào xảy ra lỗi: bạn có một '$ PATH' khác với bình thường không? Những gì nói 'mà python2' trong vỏ? – glglgl

+0

trên 'which python2', tôi không nhận được bất kỳ thứ gì trong trình bao. Làm thế nào tôi nên xác định nó? – murtaza52

10

Hãy thử lệnh này trong terminal

sudo ln -s /usr/bin/python2.6 /usr/bin/python2

hoặc

sudo apt-get install python2

+0

Tôi muốn đi theo tuyến đường tượng trưng như tôi đã làm trong quá khứ, máy gần đây đã cài đặt lại sạch sẽ El Capitan. Ngay cả khi sudo như sau 'sudo ln -s /usr/bin/python2.7/usr/bin/python2' Tôi nhận được sau đây 'ln:/usr/bin/python2: Hoạt động không được phép' –

+0

Vấn đề được giải quyết. Sử dụng 'ln -sf'cho phép nó hoạt động. Tôi đã kiểm tra nó đã không được liên kết bằng cách sử dụng 'ls -la | nhiều hơn nữa, vì vậy nó là một chút bí ẩn tại sao '-f' làm việc ngay cả sau khi làm một' người đàn ông ln' và đọc về nó. Dù sao vấn đề được giải quyết. –

+1

FWIW, tính năng này hoạt động trên phiên bản El Capitan của tôi: sudo ln -s /usr/bin/python2.7/usr/local/bin/python2 –

1

Trên Ubuntu 12.04.

Để tìm hiểu những gì gói sở hữu file:

$ apt-file -F find /usr/bin/python2 
python-minimal: /usr/bin/python2 

Để tìm hiểu những gì các gói phụ thuộc vào gói:

$ apt-cache rdepends python-minimal 
python-minimal 
Reverse Depends: 
    python2.7-minimal 
|livecd-rootfs 
    python-minimal:i386 
    python-support 
    python2.7-minimal 
    python 
|livecd-rootfs 

Nó chỉ ra rằng nếu bạn có python gói thì bạn nên có python-minimal sau đó bạn cần có tệp /usr/bin/python2.

Kiểm tra xem /usr/bin có nằm trong số $PATH bên trong emacs không. Nếu đúng như vậy bạn không thể chạy /usr/bin/python2 từ một vỏ thì bạn có thể cài đặt lại python-minimal để khôi phục /usr/bin/python2 file:

$ sudo apt-get --reinstall install python-minimal 
Các vấn đề liên quan