1.文件跨系统传递导致的问题
-
报错 :import: command not found  -
原因:Linux系统下的python文件和windows系统下的python文件有些差异,跨系统传递需要特别留意,Linux系统下需要在python第一行指定解释器路径,否则找不到解释器,也就无法导入模块了 -
解决办法:在第一行添加
-
注意:必须是第一行,#! 后面添加的是python解释器的路径,也就是安装Python环境时指定的路径
2.执行.py文件时出现的问题
-
2.1 报错:-bash: ./test.py: Permission denied
- 原因:刚上传到服务器的python文件没有执行权限
- 解决办法:给python文件添加执行权限即可
chmod +x test.py -
2.2 报错:python3.7^M: bad interpreter: No such file or directory
- 原因:在Windows上编写的代码,直接上传到服务器,代码的每一行最后都多了3^M,可用cat -v test.py查看,如下图:
 - 解决办法:使用如下命令替换掉原文件中所有的^M符号,生成一个新的python文件
cat -v test.py | sed -e '1,$s/\^M$//g' > new.py - 注:test.py是原文件,new.py是替换后生成的新文件,可以放心执行该命令,因为它只会替换行末的^M符号,如果代码中含有这个符号不会被替换掉
- 可以看到new.py文件中已经没有^M符号了
- 执行new.py
./new.py - 可以正常运行了
|