2016-04-24 16 views
0

を実行しています。何らかの理由で私のローカルマシン上のWebアプリケーションを移動する必要があります。私はPythonスクリプトからいくつかの情報を抽出する必要があります。 私はたくさんのガイドに従ってきました。ここではstackoverflowで答えていますが、私は奇妙な問題があります。 私はjQueryからphpファイルへのajax呼び出しで、pythonスクリプトからいくつかの情報を取得し、次にphpファイルを精巧にしてjavascriptに返す単純なWebアプリケーションを手に入れました。 私の問題は、PHPファイルである:Ubuntu xampp cantはPythonスクリプト

<?php 
$test = 'just a string to elaborate'; 
$result = system("cd ~/Scrivania/test && python script3.py ". escapeshellarg($test)); 
var_dump($result); 
?> 

とPythonスクリプト:

#!/usr/bin/env python 
import sys 
import os 
import numpy as np 
from sklearn.feature_extraction.text import CountVectorizer 
from sklearn.naive_bayes import MultinomialNB 
from sklearn.pipeline import Pipeline 
from sklearn.metrics import confusion_matrix, f1_score 
from sklearn.datasets import load_files 
from sklearn.svm import SVC 
from sklearn.feature_extraction.text import TfidfTransformer 
from sklearn.naive_bayes import MultinomialNB 
from sklearn.metrics import accuracy_score 
from sklearn.metrics import classification_report 
string = sys.argv[1] 
sets = load_files('scikit') #carico il set 




count_vect = CountVectorizer() #bigrammi count_vect = CountVectorizer() per bags of words 
X_train_counts = count_vect.fit_transform(sets.data)  #applico al set 



tf_transformer = TfidfTransformer(use_idf=False).fit(X_train_counts) 
X_train_tf = tf_transformer.transform(X_train_counts) 


tfidf_transformer = TfidfTransformer() 
X_train_tfidf = tfidf_transformer.fit_transform(X_train_counts) 



clf = MultinomialNB().fit(X_train_tfidf, sets.target) 
docs_new = [string] 
X_new_counts = count_vect.transform(docs_new) 
X_new_tfidf = tfidf_transformer.transform(X_new_counts) 
predicted = clf.predict(X_new_tfidf) 
for doc, category in zip(docs_new, predicted): 
    #print('%r => %s' % (doc, sets.target_names[category])) 
    #print(sets.target_names) 
    print(clf.predict_proba(X_new_tfidf)) 

このコマンドが実行されないだろう、とエラー・ログに私が得た:

Traceback (most recent call last): File "script3.py", line 5, in from sklearn.feature_extraction.text import CountVectorizer importError: No module named sklearn.feature_exctraction.text

明らかにscikit-learnであり、すべてのコンポーネントがインストールされていて、シェルから同じコマンドを実行して正しい出力を出した場合はうまくいきます。 私が代わりに現在の1を別のスクリプトを実行しようとすると、のようなもの:

import sys 
import os 
print('hello') 

私は出力を得ました。
私は実際に何が問題なのか、なぜpythonがphp cant load scikitから呼び出されたのか理解できません。
phpのpythonスクリプトを呼び出すのは良い考えではありませんが、決定的な解決策ではありません(私はオフラインで動作するアプリケーションのバージョンが必要です)。
pythonバージョン:2.7;
私はすでにcgi-binフォルダの中を移動しようとしました。
本当にありがとうございます。 ニコ

答えて

0

私はここに私が見つけたものですが、同じ問題で日捕まってしまった:

あり、あなたの地元の図書館やXAMP/MAMPで使用されるものとの違いは、それがなぜ、基本的なPythonスクリプトの実行だと輸入品ではありません。

ローカルのlib(sklearn ..etc)をコピーしてxamp libフォルダに貼り付けると、魅力的なように私のために働きました。

〜バッハ

関連する問題