现有如下python脚本(test.py)需要执行:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
@file:test.py
@author:sdc
@time:2018/12/27 9:26
"""
print('Hello world')
Windows 环境
命令行(cmd.exe)中输入:
python test.py
执行结果:
Linux环境
linux下有两种方式:
1. 终端中输入解释器执行脚本文件:(这里需要输入python3,因为系统默认安装了python2)
python3 test.py
执行结果:
2. 终端中直接执行脚本,类似于执行 .sh脚本:
这种执行方式需要在.py文件的第一行写明:#!/usr/bin/env python3
首先使用chmod改变test.py的权限:
chmod 777 test.py
终端输入:
./test.py
执行结果:
执行失败,提示:"没有那个文件或目录3"。
原因:test.py文件在windows环境下编辑后直接拷贝到linux虚拟机中。windows下的换行符为:\r\n。而linux下只有:\n。linux终端在执行:#!/usr/bin/env python3时会认为执行的是:#!/usr/bin/env python3\r,这样就会导致错误。此时使用vim打开test.py,输入:set ff
然后就会看到:fileformat=dos,证明test.py为windows格式。
此时输入:set ff=unix,这样就会将test.py的编码改为unix格式。然后保存退出即可。
这样就可以在中断中直接输入:./test.py来执行脚本了。
还有一种更简单的修改文件编码的方式:使用dos2unix工具。