记录当把本地项目运行在服务器上时出现的一些错误
错误种类一
详情
昨天在本地刚把后端的一些漏洞补完,今天想着把项目放服务器上试一试。奇怪的是项目根本打不开,提示信息是这样的:
FileNotFoundError: Could not find module
‘C:\Users\biewang\AppData\Local\Programs\Python\Python39\lib\site-packages\pyzbar\libzbar-64.dll’
(or one of its dependencies). Try using the full path with constructor
syntax.
刚开始一直以为是我的pyzbar包出错了,删除重新下载。没用。把本地的pyzbar复制到服务器上,也没用。
解决方法
解决方法是把c:\Windows\System32里面的msvcr120_clr0400.dll复制到pyzbar包里面,重命名为msvcr120.dll .
具体原因以及解决机制如下:
错误种类二
详情
嗯,在解决了上面那个困扰了好久的问题之后,满心欢喜的打开了网页。幸好,打开网页是正常的。可是,当我在网站上传我的图片时,它直接提示我服务器错误:
The server encountered an internal error and was unable to complete
your request. Either the server is overloaded or there is an error in
the application.
刚开始我以为是我代码哪里有问题。也是一直找找不到。哈,还是摆脱不了这个毛病,刚开始学出错了总觉得是自己代码写的有毛病(虽然我专业是计算机相关的,但完整的项目开发还真是没什么经验)。服务器本地运行没问题,代码能跑通。这个时候我终于开窍了,开始查看服务器的访问日志,错误日志。
访问日志报错如下:
101.35.170.223 - - [23/Nov/2021:15:12:32 +0800] “POST /file HTTP/1.1” 500 290
101.35.170.223 - - [23/Nov/2021:15:15:03 +0800] “POST /file HTTP/1.1” 500 290
上网查了查,没找到什么头绪。不过找到了一个对以后有用的网站,果断收藏了。
下面是网站的部分截图

言归正传,通过查找状态码500找不到结果。这个时候我又看起了错误日志,刚开始也是一头雾水。看不大懂。喝了一杯水冷静了下。重新看,终于找到了错误的地方。
[Tue Nov 23 15:25:21.832065 2021] [wsgi:error] [pid 6072:tid 1744]
[client 101.35.170.223:54429] FileNotFoundError: [Errno 2] No such
file or directory:
'C:\\apache\\Apache24\\bin/picture\\t.t.v.g.1.0.u.7.2.s.g.m.p.t.a.e.9.j.u.
解决方法
picture 这个目录应该是在我项目目录里面。日志里面却显示一直在Apache的目录里面去查找picture目录,结果当然是找不到了。我想起来我的项目是使用Apache运行起来的,而项目里面用到了一个函数os.path()。作用是返回当前目录。想明白了这点,我把项目里面要用到os.path 的地方都换成了绝对路径。果然,错误解决。
错误种类三
详情1
经过了上午的教训,当我下午再去测试服务器的时候。发现网站又报了个错误。这次果断的去查看错误日志,发现错误信息如下:
SyntaxError: EOL while scanning string literal\r, referer:
上网查找原因是符号运用不当。我就根据错误信息去查找对应行,发现结果就是上午我改动os.path()函数的地方,
qr_img_path = ‘C:\pythonfile\picture\’ + md5_filename + '_qr' + suffix
解决方法
仔细检查发现是单引号使用不当,\把单引号给转义了,单引号修改双引号可解决。修改之后如下
qr_img_path = "C:\pythonfile\picture\" + md5_filename + '_qr' + suffix
详情2
当我期待bug已经结束的时候,果不其然,又给我报了bug。
OSError: [Errno 22] Invalid argument: ’
位置还是刚才的地方,我……
算了算了,继续查。
查找之后发现是picture后面的斜杠应该是 / 而不是 **\ **。
修改之后如下:
qr_img_path = "C:\pythonfile\picture/" + md5_filename + '_qr' + suffix
bug解决。终于跑通了流程。哭死
错误种类三解决资料如下:
https://blog.csdn.net/u012561176/article/details/82107350
https://blog.csdn.net/The_Time_Runner/article/details/84502602