当前位置:论坛首页 > Linux面板 > 求助

【已解答】php调用python版本问题

发表在 Linux面板2021-10-29 14:51 [复制链接] 5 2301

在php项目中需要调用执行一段python 3.8的代码,宝塔默认是python2.6,因为py2和py3不兼容,麻烦问下如何解决?
使用道具 举报 只看该作者 回复
发表于 2021-10-29 14:57:22 | 显示全部楼层
您好,您系统自带的是python2.6或者2.7的版本导致的,您可以安装Python项目管理器,安装Python3.8,然后调用虚拟环境下的python3.8 去执行
安装python.png

如果您是centos6的话, 建议您 百度下怎么添加(记得是添加,不要更换)Python版本


使用道具 举报 回复 支持 反对
发表于 2021-10-29 15:08:39 | 显示全部楼层
大炮运维V587 发表于 2021-10-29 14:57
您好,您系统自带的是python2.6或者2.7的版本导致的,您可以安装Python项目管理器,安装Python3.8,然后调 ...

我使用python管理器安装了python3..8并添加了python代码,但我只能通过命令行进入虚拟环境下的python3.8单独执行。python是通过php在网页中访问调用的,我输出python版本还是2.7,请问是我的调用方法有问题吗?(通过命令行调用py是3.8,php网页访问py是2.6版本)
使用道具 举报 回复 支持 反对
发表于 2021-10-29 15:26:53 | 显示全部楼层
1501682516ufth 发表于 2021-10-29 15:08
我使用python管理器安装了python3..8并添加了python代码,但我只能通过命令行进入虚拟环境下的python3.8 ...

/root/.pyenv/versions/3.8/bin/python
需要进行指定虚拟目录才行
或者做软连接
ln -s /root/.pyenv/versions/3.8/bin/python /usr/bin/python3
你调用的时候直接 python3  不要python,因为系统的环境变量设置的是2.7
使用道具 举报 回复 支持 反对
发表于 2021-10-29 16:26:44 | 显示全部楼层
大炮运维V587 发表于 2021-10-29 15:26
/root/.pyenv/versions/3.8/bin/python
需要进行指定虚拟目录才行
或者做软连接

指定虚拟目录是在php里面指定吗?
我安装的python版本是3.8.0

<?php

        $handle = shell_exec('/root/.pyenv/versions/3.8/bin/python /data/pywork/three/main.py 2>&1');
        var_dump($handle);

?>

运行结果如下:
string(60) "sh: /root/.pyenv/versions/3.8/bin/python: Permission denied "

要怎么处理。
使用道具 举报 回复 支持 反对
发表于 2021-10-29 16:31:14 | 显示全部楼层
1501682516ufth 发表于 2021-10-29 16:26
指定虚拟目录是在php里面指定吗?
我安装的python版本是3.8.0

要切换root权限去执行了
你看你自己使用的具体python版本号,也就就这个葫芦画个瓢的事,我这里使用 3.8的路径是我举例子说明的,你根据你实际路径选择
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急运维服务

响应时间:3分钟

问题处理方式:宝塔专家1对1服务

工作时间:工作日:9:00 - 18:30

宝塔专业团队为您解决服务器疑难问题

立即付费处理

工作时间:09:00至24:00

快速回复 返回顶部 返回列表