记录当把本地项目运行在服务器上时出现的一些错误

记录当把本地项目运行在服务器上时出现的一些错误

错误种类一

详情

昨天在本地刚把后端的一些漏洞补完,今天想着把项目放服务器上试一试。奇怪的是项目根本打不开,提示信息是这样的:

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 .
具体原因以及解决机制如下:

https://blog.csdn.net/qq_34146694/article/details/120003977

错误种类二

详情

嗯,在解决了上面那个困扰了好久的问题之后,满心欢喜的打开了网页。幸好,打开网页是正常的。可是,当我在网站上传我的图片时,它直接提示我服务器错误:

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

上网查了查,没找到什么头绪。不过找到了一个对以后有用的网站,果断收藏了。

https://httpwg.org/specs/rfc7231.html#status.500

下面是网站的部分截图
在这里插入图片描述
言归正传,通过查找状态码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