多个python版本下,宝塔面板服务无法启动问题完美解决

当系统中存在多个python版本时,比如一个2.7版本一个3.6版本,这时宝塔面板可能会无法启动,谷歌了一圈找不到答案!所以自己动手丰衣足食。

经过多次测试发现原因是因为宝塔面板服务必须启动 C:\Program Files\python\Lib\site-packages\win32\runserver.exe 这个文件,当系统中存在多个python时,就会存在一个问题,那就是runserver.exe 调用了其他版本的dll,所以无法启动也就说的通了。

解决办法有2个:
1、修改环境变量,将C:\Program Files\python(面板使用的python的安装目录),加入到PATH中。(不推荐这种方式,因为这样可能会导致你其他软件需要使用别的python版本时出错)

2、推荐使用的方式
这种办法就更简单了,从宝塔服务中查看他所调用的文件属于哪一个python,看下图 :多个python版本下,宝塔面板服务无法启动问题完美解决
发现他调用了C:/Program Files/python/lib/site-packages/win32/task.exe,那么我们就把 C:/Program Files/python/(面板python安装目录) 目录下的 python36.dll 、python3.dll、vcruntime140.dll 这3个DLL文件复制到 C:\Program Files\python\Lib\site-packages\win32 目录下,也就是task.exe文件和runserver.exe文件的所在目录,然后启动服务,成功了!

以上所说 python36.dll 、python3.dll、vcruntime140.dll 这3个文件,在不同的python版本中名字不一样,笔者是python3.6.6版本,如果是python2.7版本名字应该是python27.dll 、python2.dll、vcruntime140.dll,以此类推。