Ubuntu xampp无法运行python脚本

时间:2016-04-24 15:32:09

标签: php python xampp scikit-learn lamp

由于某些原因,我必须在我的本地计算机上移动我的Web应用程序。我需要从python脚本中提取一些信息。 我已经关注了很多指南,并在这里回答了stackoverflow,但我有一个奇怪的问题。 我有一个简单的Web应用程序,从jquery与ajax调用到php文件,从python脚本中检索一些信息,然后php文件详细说明并发送回javascript。 我的问题是PHP文件:

<?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(最近一次调用最后一次):文件“script3.py”,第5行,in          来自sklearn.feature_extraction.text import CountVectorizer importError:没有名为sklearn.feature_exctraction.text的模块

显然scikit-learn和所有它的组件都已安装,并且它工作得很好,如果我从shell运行相同的命令它工作并给了我正确的输出。 如果我尝试运行不同的脚本而不是当前的脚本,例如:

import sys 
import os
print('hello')

我得到了输出 我无法弄清楚问题是什么以及为什么python从php无法加载scikit 我知道从php调用python脚本不是一个好主意,但不是一个明确的解决方案(我只需要一个离线工作的应用程序版本)。
python版本:2.7;
我已经尝试进入cgi-bin文件夹。
任何帮助将非常感激。 尼科

1 个答案:

答案 0 :(得分:0)

我在同样的问题上被困了好几天,这是我发现的:

您的本地库与xamp / Mamp使用的库之间存在差异,这就是基本python脚本运行的原因,而不是带有导入的脚本。

你要做的是复制你的本地lib(sklearn ..etc)并将其粘贴到xamp lib文件夹中,像魅力一样为我工作。

〜干杯