web在windows上成功运行,在linux上无法正常运行

在Windows上运行正常的web应用在Linux上出错,主要问题在于Python环境的调用。通过检查文件权限、php.ini配置、system命令执行及python路径确认,发现Python包未安装在正确路径。解决方案是找到普通用户目录下的python包并复制到正确位置,从而使web应用能正常运行Python脚本并调用tensorflow等库。
摘要由CSDN通过智能技术生成

使用xampp在Windows上写了一个web可以正常运行,但是在Linux上无法正常运行,可以通过以下内容看哪一步是否出错:

  • 首先查看有些文件是否赋予了权限
    修改权限命令:

对一个目录以及其子目录的所有文件添加权限:

chmod -R 777 /home/linux

将文件 file1.txt 设为所有人皆可读取 :

chmod ugo+r file1.txt
  • 查看system命令是否可以正常执行:
    查找php.ini文件的位置
    在自己的网站目录新建一个php文件,添加:
<?php echo phpinfo(); ?>

并保存,然后在浏览器访问即可打开php配置信息
打开php.ini文件找到disable_functions,看要使用的函数是否被禁用,若被禁用,则删除即可。

  • PHP中system,exec如何查看程序返回结果
    很多时候执行system以及exec命令运行python脚本等报错了并不返回结果,可以通过重定向,将结果输出:
system("source /storage/www/html/deepai/bin/anaconda3/bin/activate 2>& 1",$ret);
echo("ret is $ret");
exec("source /storage/www/html/deepai/bin/anaconda3/bin/activate 2>& 1",$ret);
echo("ret is $ret");

成功执行,输出0;执行失败,输出1。
查到了报错之后发现是无法正确的调用python环境,在普通用户页面Linux系统下可以正常调用python环境,程序可以运行,通过apache则不可以

  • 查看python的安装路径
    查看所有python的路径
whereis python

查看当前使用的python路径

which python

通过以上排查以及一行行代码测试发现可以正常调用python环境,但是不能调用tensorflow等python包,到python安装包的目录里lib/site-pachages也没找到这些python包,于是在普通用户linux页面查找tensorflow包find 'tensorflow'或者通过该方法查找:

import os
os.path.abspath('.\\filename.py')   #获得你要导入的模块的路径

发现安装到了普通用户的目录,也没搞明白明明是在python环境下安装的python包但是没安装到python的安装路径下,直接把普通用户目录下的所有python包复制过去

cp  -r 源目录 指定目录

最后访问web可以运行python脚本并得到结果!
参考:
https://zhuanlan.zhihu.com/p/97177081
https://www.cnblogs.com/ChineseMoonGod/p/6474772.html
https://www.cnblogs.com/z-x-y/p/9475376.html
https://www.cnblogs.com/sogeisetsu/p/11415657.html
https://blog.csdn.net/weixin_39997664/article/details/115204345
https://blog.csdn.net/qq_33849629/article/details/81201029
https://www.cnblogs.com/xiangsj/p/10205770.html
国内pip安装镜像源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值