【问题标题】:Trouble with imports and setting python version导入和设置 python 版本的问题
【发布时间】:2020-02-17 15:42:52
【问题描述】:

我无法从不同的起点运行相同版本的 Python,这导致导入我的 Python 脚本时出现问题。

我有一个 python3 脚本,我试图从一个 php 应用程序运行它。

import sys
import time
import os
import numpy
import pandas
from sklearn import metrics

当我在 VS Code 中从终端运行此代码时,我得到了预期的结果。从 VS Code 我从 os.sys.version 得到这个

3.7.4 (default, Aug 13 2019, 20:35:49) [GCC 7.3.0]

当我使用 shell_exec('Python path/to/script.py') 或 Symfony Process 从我的 PHP 应用程序运行它时

我从 os.sys.version 得到这个

2.7.15+ (default, Oct 7 2019, 17:39:04) [GCC 7.4.0]

当我使用 shell_exec('Python3 path/to/script.py') 或 Symfony Process 从我的 PHP 应用程序运行它时

我从 os.sys.version 得到这个

3.6.8 (default, Oct 7 2019, 12:59:55) [GCC 8.3.0]

在这两种情况下,当我运行 PHP 脚本时

import pandas ModuleNotFoundError: No module named 'pandas'

脚本也无法加载任何 SkLearn 模块

但正如我从 VS 代码终端或常规 ubuntu 终端所说,python 脚本按预期运行。从 CLI which python 给我/home/anaconda3/bin/python

我显然在 Anaconda 和常规 python 安装之间有一个 python 安装问题,我不知道如何纠正。我猜安装太多了。

感谢您查看此内容。

【问题讨论】:

  • 你有一些 PHP 代码吗?一般来说:如果您有多个安装,则使用在 PATH 中找到的第一个。如果您知道要运行哪个 python,为什么不使用可执行文件的完整路径?
  • 触发调用python脚本的php是“$process = new Process('python /path/to/start.py');”或“$process = new Process('python3 /path/to/start.py');”
  • " 如果您知道要运行哪个 python,为什么不使用可执行文件的完整路径?"因为我没想到。 :-P 谢谢你这样做了。
  • 尝试在 python 之前添加完整路径。例如:$process = new Process('/my/path/to/the/right/install/python3 /path/to/start.py');
  • 酷,我们交叉发布了。你解决了。 :-)

标签: php python python-3.x command-line anaconda


【解决方案1】:

好的,Erwin 给了我答案。

如果您知道要运行哪个 python,为什么不使用可执行文件的完整路径?

呃,星期一太早了。谢谢!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-16
    • 1970-01-01
    • 2011-06-13
    • 2019-03-15
    • 1970-01-01
    • 2012-09-02
    相关资源
    最近更新 更多