因爲某些原因我不得不將我的web應用程序我的本地機器上。我需要從python腳本中提取一些信息。 我跟着很多的指南,並在這裏回答了stackoverflow,但我有一個奇怪的問題。 我有一個簡單的Web應用程序,從一個AJAX調用PHP文件jQuery的,從一個python腳本檢索一些信息,那麼PHP文件闡述他們送回的JavaScript。 我的問題是與PHP文件:Ubuntu的XAMPP着運行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學習和所有它的組件安裝,並且它工作得很好,如果我從shell運行相同的命令它的工作,並給了我正確的輸出。 如果我嘗試運行不同的腳本,而不是當前的,是這樣的:
import sys
import os
print('hello')
我得到的輸出。
我真的不能弄清楚是什麼問題,爲什麼蟒蛇從PHP着負載scikit調用。
我知道,從PHP調用Python腳本不是一個好主意,但不是最終的解決辦法(我只是需要一個版本,我的應用程序是脫機工作)。
python版本:2.7;
我已經嘗試過裏面的cgi-bin文件夾移動。
任何幫助將非常感激。 尼科