python파일 실행

python파일 실행

QA

python파일 실행

본문

aws 가상서버입니다.

폴더보면 

 

/usr/share/nginx/html/그누보드 이렇게 있는데요...

 

 

<?php

    $python = `test.py`;

    echo $python;

?>

이렇게 그누파일 있는곳에 같이 넣고 

 

tython.py파일

------------------------

import random

import math

n = math.factorial(5)

print(random.randrange(100))

print(n)


print("파이썬") 

------------

 

이 py파일을 실행해보려고 했더니 안되어서 보니

 

python은

/usr/lib64/python3.7 이렇게 설치되어 있네요.

 

이경우 어떻게 해야 할까요?

 

 

 

 

 

 

이 질문에 댓글 쓰기 :

답변 3

`test.py` 만 실행해서는 command not found겠죠.

`python test.py`처럼 실행해야 합니다.

그리고, 체크는 아래처럼 하면 됩니다.


<?php
echo `python -V`;

아무것도 뜨지 않으면, Python 3.7 버전이 설치되었으니 아래처럼 해보세요.


<?php
echo `python3 -V`;

정상적으로 Python 버전이 뜨면, 아래처럼 변경하면 됩니다.


<?php
$python = `python3 test.py`;
echo $python;

실행하려면 exec 로 해야하지 않나요?


<?php
    $python = `test.py`;
    exec("python ".$python);
?>

여기보고 똑같이 해보고있는데요,,네이버 블러그는 암튼 도움이 안되요,,경로 때문일까요?
https://blog.naver.com/PostView.naver?blogId=netatom&logNo=221155462666&parentCategoryNo=&categoryNo=23&viewDate=&isShowPopularPosts=true&from=search

이거 된건지 봐주시면 고맙겠습니다.

 

<?php
header('Content-Type: text/html; charset=UTF-8');
//변수에 한글이 포함될 경우 아래 코드를 추가한다.
    putenv("LANG=ko_KR.UTF-8");
    setlocale(LC_ALL, 'ko_KR.utf8');

    $변수1 = "AAA";
    $변수2 = "가나다 bbb";
    $변수3 = "가 나 다"; //공백이 있을경우 문자열로 묶어줘야 함 //exec("python3 python.py ".$변수1." ".$변수2." \"".$변수3."\"", $output);
    exec("cd /usr/share/nginx/html/ && python3 py1.py ".$변수1." ".$변수2." \"".$변수3."\"", $output);
 
//이렇게 하는 이유는 경로를 지정해주고 python3를 실행해야 정상적으로 작동.

 

   //$rt=exec("ls");
    //echo $rt;
   //print_r($output);
   

    echo $output[0]. ""; //Success1
    echo $output[1]. ""; //Success2
    echo $output[2]. ""; //AAA
    echo $output[3]. ""; //가나다
    echo $output[4]. ""; //가 나 다
    ?>

 

php는 위와 같고

 

파이썬 파일은 py1.py 인데 다음과 같이 하니

 

# -*- coding: utf-8 -*-
import sys
 
def call(var_1, var_2, var_3):
    # 무언가를 처리하고..
   # print로 값을 return해서 php에서 받을 수 있음
    print('Success1', 'good')
    print('Success2', 'bad')


    print('Success3', 'no')
    print('Success4', '11111111111111111')

    print(var_1)
    print(var_2)
    print(var_3)
call(sys.argv[1], sys.argv[2], sys.argv[3])

 

그리고 브라우저에서  도메인/test.php 새로고침해보니

 

Success1 goodSuccess2 badSuccess3 noSuccess4 11111111111111111AAA

 

위와 같이 나옵니다.

 

질문1: 이제 되는건가요?

질문2: 이게 php파일에서 python 데이터를 가져오는건가요? 아니면 데이터도 가져오고 python 파일도 실행시키는 건가요?

 

파이썬 시작해본지가 며칠안되어 그렇습니다 헤헤
   

답변을 작성하시기 전에 로그인 해주세요.
전체 80
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT