Today I wrote a python script using notepad++ under windows. After passing it to the linux server for execution, the message: -bash: ./logger.py: usr/bin/python^M: bad interpreter: No such file or directory
1.Cause analysis
This is caused by different system encoding formats: the logger.py file edited in the Windows system may have invisible characters, so the above exception message will be reported when executed under the Linux system. It is generally caused by the different line ending identifiers between Windows and Linux. In Windows, the line ending character is '\r\n', while in Linux, the line ending character is '\n', and ^M is ascii. '\r' in .
2.Solution
1) Convert under windows:
Use some editors such as UltraEdit or EditPlus and other tools to convert the script encoding first, and then execute it in Linux. The conversion method is as follows (UltraEdit): File-->Conversions-->DOS->UNIX.
2) Direct replacement under linux:
sed -i 's/^M//g' filename, which means to replace ^M in each line of filename with / (note that ^M is written under Linux and ^M is a carriage return and line feed character. The input method is to press and hold CTRL+v, release v, press m)
3) It can also be converted in Linux:
First make sure the file has executable permissions: chmod a+x filename; then modify the file format: enter vi filename, and then use the set ff (or set fileformat) command to check the file format, which is fileformat=dos or fileformat=unix, Use the following commands to modify the file format: set ff=unix or :et fileformat=unix; finally wq (save and exit)
Finally, execute the file ./filename
The above is the detailed content of When writing a python script under window and running it under linux, an error occurs: usr/bin/python^M: bad interpreter: No such file or directory. For more information, please follow other related articles on the PHP Chinese website!