Проблемы с импортом и установкой версии Python

У меня возникают проблемы с запуском одной и той же версии 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]

Когда я запускаю это из своего PHP-приложения, используя shell_exec ('Python path / to / script.py') или Symfony Process

Я получил это из os.sys.version

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

Когда я запускаю это из своего PHP-приложения, используя shell_exec ('Python3 path / to / script.py') или Symfony Process

Я получил это из 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

У меня явно есть сбой при установке python между Anaconda и обычной установкой python, и я не знаю, как исправить. Думаю, слишком много установок.

Спасибо, что посмотрели на это.


person Sports Racer    schedule 21.10.2019    source источник
comment
У вас есть PHP-код? В общем: если у вас несколько установок, сначала используется та, которая указана в PATH. Если вы знаете, какой питон хотите запустить, почему бы вам не использовать полный путь к исполняемому файлу?   -  person Erwin Moller    schedule 21.10.2019
comment
PHP, запускающий вызов скрипта python, - это $ process = new Process ('python /path/to/start.py'); или $ process = new Process ('python3 /path/to/start.py');   -  person Sports Racer    schedule 21.10.2019
comment
Если вы знаете, какой питон хотите запустить, почему бы вам не использовать полный путь к исполняемому файлу? потому что я не думал об этом. :-P Спасибо, это получилось.   -  person Sports Racer    schedule 21.10.2019
comment
попробуйте добавить полный путь перед python. например: $ process = new Process ('/ my / path / to / the / right / install / python3 /path/to/start.py');   -  person Erwin Moller    schedule 21.10.2019
comment
Круто, мы перекрестились. Вы это решили. :-)   -  person Erwin Moller    schedule 21.10.2019


Ответы (1)


Хорошо, Эрвин получил ответ.

Если вы знаете, какой питон хотите запустить, почему бы вам не использовать полный путь к исполняемому файлу?

Слишком рано в понедельник. Спасибо!

person Sports Racer    schedule 21.10.2019