2011-10-10 24 views
5

Tôi đang sử dụng Cygwin trên Windows 7 để chạy tập lệnh bash kích hoạt tập lệnh python và tôi nhận được lỗi sau:usr/bin/env: thông dịch viên xấu Cho phép từ chối -> cách thay đổi fstab

myscript.script: /cydrive/c/users/mydrive/folder/myscript.py: usr/bin/env: bad interpreter: Permission Denied.

Tôi là người mới lập trình, vì vậy tôi đã xem xét một chút và tôi nghĩ điều này có nghĩa là Python được gắn trên một thư mục khác mà tôi không có quyền truy cập. Tuy nhiên, dựa trên những gì tôi tìm thấy, tôi đã cố gắng làm theo những điều sau:

  • Thay đổi thứ gì đó (từ người dùng sang exec) trong fstab: tuy nhiên, tệp fstab của tôi đã được nhận xét và chỉ đề cập đến giá trị mặc định. Tôi không biết làm thế nào tôi có thể thay đổi mặc định. Thư mục fstab.d trống.
  • thay đổi #! dòng usr/bin/env python trong kịch bản đến vị trí thực tế của Python: không hoạt động, cùng một lỗi
  • thêm PYTHONPATH vào các biến môi trường của cửa sổ: cùng một lỗi.

Tôi thực sự đánh giá cao nếu ai đó có thể giúp tôi với đề xuất!

Trả lời

8

Bạn kịch bản nên bắt đầu với:

#! /usr/bin/env whateverelse ... 
^this first one is important 
+1

Ý của bạn là '#!/usr/bin/env python', không gian đó cũng quan trọng. –

+2

Không gian là tùy chọn. Cả hai đều hoạt động. – Mat

+3

'Khoảng trống sau! OK.' - Dennis Ritchie. Tôi đã có kinh nghiệm khác, nhưng đó phải là một lỗi trong việc thực hiện ... Bạn nói đúng. Upvoted; Tôi đã học được điều gì đó :-) –

1

Đây dường như là một câu trả lời muộn, nhưng có thể hữu ích cho người khác. Tôi đã nhận được cùng một lỗi kinda, khi tôi đã cố gắng để chạy một kịch bản shell sử dụng python. Vui lòng kiểm tra \ usr \ bin cho sự tồn tại của python. Nếu không tìm thấy, hãy cài đặt để giải quyết vấn đề. Tôi đi đến kết luận như vậy, vì lỗi cho thấy "thông dịch viên xấu".

0

Tôi khuyên bạn nên 'chạy cygwin làm quản trị viên' Cảm ơn bạn. CHỈNH SỬA: - hãy thử chmod cho các quyền đọc để biết thêm here

1

Bạn nên viết lệnh của mình dưới dạng 'python ./example.py', sau đó sửa nó trong tập lệnh của bạn.

-1

Bạn có thể tắt SELinux bằng cách sử dụng:

setEnforce 0 

More info về cách sử dụng SELinux

2

Đây là trong Git Bash cho tôi. Tôi đã thay đổi dòng đầu tiên (dòng công việc) của file py được chạy, để lại bản gốc, thêm một ở trên nó, và đó làm việc:

#!python 
#!C:\Users\Emiri\Anaconda\envs\_build\python.exe 

("Emiri" không tồn tại trên hệ thống của tôi , đã được mã hóa cứng trong cài đặt zipline)

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