2012-04-02 36 views
42

Không thể tìm ra, nơi thay đổi EOF trong PyCharm. kịch bản của tôi, bắt đầu với:PyCharm./usr/bin/python^M: thông dịch viên kém

#!/usr/bin/python 
# -*- coding: utf-8 -*- 

Đầu ra một cái gì đó như thế này, khi tôi cố gắng chạy nó như thực thi (chmode + x):

-bash: ./main.py:/usr/bin/python^M: thông dịch viên xấu: Không có tệp hoặc thư mục nào như vậy

Phải làm gì và làm cách nào?

+2

dường như có các ký tự '^ M' trong tập lệnh, sử dụng dos2unix – avasal

Trả lời

26

Set dòng tách để Unix:

Unix

+0

Nếu tệp đã được lưu, điều này có vẻ không hữu ích. Có lẽ chỉ với các tập tin mới? Bạn sẽ cần sử dụng công cụ 'dos2unix' cho các tệp đó. – ksaylor11

33

Vấn đề không phải là EOF nhưng EOL. Vỏ thấy^M cũng như cuối dòng và do đó cố gắng tìm /usr/bin/python^M.

Cách thông thường để vào trạng thái này là chỉnh sửa tệp python bằng trình chỉnh sửa MSDOS/Windows và sau đó chạy trên Unix. Cách khắc phục đơn giản nhất là chạy dos2unix trên tệp hoặc chỉnh sửa tệp trong trình chỉnh sửa cho phép lưu rõ ràng với cuối dòng Unix.

+0

Tôi nghĩ trình thông dịch trăn không chạy chút nào. Trình thông dịch shebang không thành công trên^M. – jpic

+0

Vâng xin lỗi vỏ đang thấy ingthis – Mark

+0

Nếu bạn không có dos2unix, chỉ cần thực hiện 'sudo apt-get install dos2unix', trong Ubuntu 14.04. – gsamaras

9

bạn có thể muốn thử dos2unix <filename>

+0

lưu ý. Đã centos cài đặt mà không có nó. để cài đặt sudo yum install dos2unix. nó ở trong repos. – ThinkBonobo

15

Bạn có thể tìm thấy những câu trả lời ở đây: ./configure : /bin/sh^M : bad interpreter

Là một người dùng Mac OS X, Tôi không tìm thấy lệnh dos2unix. Ngoài ra, tôi sử dụng vi/vim: :set fileformat=unix và sau đó lưu tập tin :wq

0

chỉ là vấn đề định dạng beween thắng và unix:

thử lệnh: dos2unix fileName

Sau khi nó chạy lại, nó sẽ hoạt động

+0

Làm cách nào để thêm hoặc cải thiện các câu trả lời khác? – Mark

1

Tương tự như bài đăng của Jiangwei Yu. Trên UNIX/Linux, tôi đã sử dụng vi để chỉnh sửa tệp Python. Sử dụng vi, bạn có thể thấy^M ở cuối mỗi dòng.

Tìm dòng sau /usr/bin/python^M

Hit end để đến cuối dòng

Hit delete để loại bỏ các^M

Để lưu tập tin và bỏ thuốc lá, gõ vào: :wq

Điều này phù hợp với tôi.

5

Install dos2unix: sudo apt-get install dos2unix

và để cho nó làm điều kỳ diệu: dos2unix FILENAME

3

Đối với hệ điều hành MacOS, bạn có thể cài đặt nó qua Homebrew như thế này:

brew install dos2unix 

Và tiếp theo làm

dos2unix FILENAME 
5

Nếu bạn đang sử dụng Vim, chỉ cần nhập lệnh sau:

:set fileformat=unix 
1

bạn có thể thử để làm điều này:

sed --in-place 's/^M//g' main.py 

[để gõ vào^M, nhấn ctrl + v, ctrl + m]

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