Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在wamp服务器上运行python脚本_Php_Python_Apache_Python 2.7_Wampserver - Fatal编程技术网

Php 如何在wamp服务器上运行python脚本

Php 如何在wamp服务器上运行python脚本,php,python,apache,python-2.7,wampserver,Php,Python,Apache,Python 2.7,Wampserver,我试图在wamp服务器上运行python脚本。我已经通过在Apache>https.conf文件中进行更改,将Apache Web服务器配置为运行Python CGI。 虽然我能够运行包含打印语句的简单python脚本,但无法运行以下代码段: realcode.py 来自未来进口部的 从收款进口柜台 #!/Python27/python 打印“内容类型:文本/html” 打印 打印“” 打印“” 打印“” 打印“来自真实代码的hello” 进口PIL 从PIL导入图像 将matplotlib.p

我试图在wamp服务器上运行python脚本。我已经通过在Apache>https.conf文件中进行更改,将Apache Web服务器配置为运行Python CGI。 虽然我能够运行包含打印语句的简单python脚本,但无法运行以下代码段:

realcode.py 来自未来进口部的

从收款进口柜台
#!/Python27/python
打印“内容类型:文本/html”
打印
打印“”
打印“”
打印“”
打印“来自真实代码的hello”
进口PIL
从PIL导入图像
将matplotlib.pyplot作为plt导入
将numpy作为np导入
导入系统,numpy
导入日志记录
进口cv2
导入操作系统
def提取匹配项(img1、kp1、img2、kp2、匹配项):
行1=img1.shape[0]
cols1=img1.shape[1]
rows2=img2.shape[0]
cols2=img2.shape[1]
计数=0
arr_of_val_y=[]
arr_of_val_x=[]
q=0
q1=0
out=np.zero((最大([rows1,rows2]),cols1+cols2,3),dtype='uint8')
out[:rows1,:cols1]=np.dstack([img1,img1,img1])
out[:rows2,cols1:]=np.dstack([img2,img2,img2])
对于比赛中的垫子:
img1_idx=mat.queryIdx
img2_idx=mat.trainIdx
(x1,y1)=kp1[img1_idx].pt
(x2,y2)=kp2[img2_idx].pt
q=x2-x1
q1=y2-y1
附加值的arr_(int(round(q)))
附加值的排列(整数(第1/10轮)*10)
圆(out,(int(x1),int(y1)),4,(255,0,0),1)
圆(out,(int(x2)+cols1,int(y2)),4,(255,0,0),1)
第2行(out,(int(x1),int(y1)),(int(x2)+cols1,int(y2)),(255,0,0),1)
计数=计数+1
打印“数组为”
c=计数器(值的排列)
m_百分比=(最大值())/20)*100
百分之一百=百分之一百
切片=[m_百分比,嗯_百分比]
acts=['匹配的%d%%'%m_%和'REM%d%%'%um_%]
cols=['r','k']
爆炸=(0.05,0)
plt.pie(切片,分解=分解,标签=动作,颜色=颜色,阴影=真,startangle=90)
项目名称(“结果”)
plt.show()
cv2.imshow(“匹配特征”,输出)
cv2.等待键(0)
cv2.destroyWindow(“匹配的特征”)
返回
底宽=300
img=Image.open('C:\\wamp\\bin\\apache2.4.9\\cgi-bin\\tiger.jpg')
wpercent=(基本宽度/浮动(img.size[0]))
hsize=int((浮点(img.size[1])*float(wpercent)))
img=img.resize((basewidth,hsize),PIL.Image.ANTIALIAS)
保存('已调整大小的\u文件\u 1.jpg')
底宽=300
img=Image.open('C:\\wamp\\bin\\apache2.4.9\\cgi-bin\\tiger1.jpg')
wpercent=(基本宽度/浮动(img.size[0]))
hsize=int((浮点(img.size[1])*float(wpercent)))
img=img.resize((basewidth,hsize),PIL.Image.ANTIALIAS)
保存('已调整大小的\u文件\u 2.jpg')
img1=cv2.imread('resized_file_1.jpg',0)#原始图像-确保灰度
img2=cv2.imread('resized_file_2.jpg',0)#旋转图像-确保灰度
orb=cv2.orb(1000,1.2)
(kp1,des1)=天体探测和计算(img1,无)
(kp2,des2)=天体探测和计算(img2,无)
bf=cv2.BFMatcher(cv2.NORM\u HAMMING,交叉检查=True)
匹配=bf.匹配(des1,des2)
匹配=排序(匹配,键=lambda val:val.distance)
out=抽取匹配项(img1、kp1、img2、kp2、匹配项[:20])
打印“”

最有可能的问题是,运行apache的用户无法使用您尝试导入的至少一个Python模块。我不知道如何在Windows上解决这个问题,但您可能会发现Linux解决方案有些帮助您提到的链接在Linux中很有帮助。windows的替代方案是什么?抱歉,我不确定如何在windows中修复此问题。我猜这和linux的基本问题是一样的。我试着用import语句运行一个示例脚本。sample.py
#/Python27/python print“内容类型:text/html”print print“print”print“print”print“SAMPLE”import cv2 img=cv2.imread(“C:\\wamp\\bin\\apache2.4.9\\cgi bin\\money.jpg”)img=cv2.cvtColor(img,cv2.COLOR\u RGB2GRAY)cv2.imwrite(“grey.png”,img)print”“
此代码运行完美。但是上面的代码没有。我不明白为什么。你的apache错误日志中有错误吗?如果是,它们是什么?
    from __future__ import division
    from collections import Counter

    #!/Python27/python
    print "Content-type: text/html"
    print
    print "<html><head>"
    print ""
    print "</head><body>"
    print "hello from real code"

    import PIL
    from PIL import Image
    import matplotlib.pyplot as plt
    import numpy as np
    import sys, numpy
    import logging
    import cv2
    import os

    def drawMatches(img1, kp1, img2, kp2, matches):
        rows1 = img1.shape[0]
        cols1 = img1.shape[1]
        rows2 = img2.shape[0]
        cols2 = img2.shape[1]

        count=0
        arr_of_val_y=[]
        arr_of_val_x=[]
        q=0
        q1=0

        out = np.zeros((max([rows1,rows2]),cols1+cols2,3), dtype='uint8')
        out[:rows1,:cols1] = np.dstack([img1, img1, img1])
        out[:rows2,cols1:] = np.dstack([img2, img2, img2])

        for mat in matches:
            img1_idx = mat.queryIdx
            img2_idx = mat.trainIdx

            (x1,y1) = kp1[img1_idx].pt
            (x2,y2) = kp2[img2_idx].pt

            q=x2-x1
            q1=y2-y1

            arr_of_val_x.append(int(round(q)))
            arr_of_val_y.append(int(round(q1/10)*10))

            cv2.circle(out, (int(x1),int(y1)), 4, (255, 0, 0), 1)   
            cv2.circle(out, (int(x2)+cols1,int(y2)), 4, (255, 0, 0), 1)

            cv2.line(out, (int(x1),int(y1)), (int(x2)+cols1,int(y2)), (255, 0, 0), 1)

            count=count+1

        print "ARRAY IS"

        c=Counter(arr_of_val_y)

        m_percent=(max(c.values())/20)*100
        um_percent=100-m_percent
        
        slices=[m_percent,um_percent]
        acts=['MATCHED %d %%' % m_percent,'REM %d %%' % um_percent]
        cols=['r','k']
        explode=(0.05,0)
        plt.pie(slices,explode=explode,labels=acts,colors=cols,shadow=True,startangle=90)

        plt.title("RESULTS")
        plt.show()
        cv2.imshow('Matched Features', out)
        cv2.waitKey(0)
        cv2.destroyWindow('Matched Features')

        return out

    basewidth = 300
    img = Image.open('C:\\wamp\\bin\\apache\\apache2.4.9\\cgi-bin\\tiger.jpg')
    wpercent = (basewidth/float(img.size[0]))
    hsize = int((float(img.size[1])*float(wpercent)))
    img = img.resize((basewidth,hsize), PIL.Image.ANTIALIAS)
    img.save('resized_file_1.jpg')

    basewidth = 300
    img = Image.open('C:\\wamp\\bin\\apache\\apache2.4.9\\cgi-bin\\tiger1.jpg')
    wpercent = (basewidth/float(img.size[0]))
    hsize = int((float(img.size[1])*float(wpercent)))
    img = img.resize((basewidth,hsize), PIL.Image.ANTIALIAS)
    img.save('resized_file_2.jpg')

    img1 = cv2.imread('resized_file_1.jpg', 0) # Original image - ensure grayscale
    img2 = cv2.imread('resized_file_2.jpg', 0) # Rotated image - ensure grayscale

    orb = cv2.ORB(1000, 1.2)
    (kp1,des1) = orb.detectAndCompute(img1, None)
    (kp2,des2) = orb.detectAndCompute(img2, None)
    bf = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck=True)
    matches = bf.match(des1,des2)
    matches = sorted(matches, key=lambda val: val.distance)
    out = drawMatches(img1, kp1, img2, kp2, matches[:20])

    print "</body></html>"