2012-04-12 12 views
11

चलाने के बजाए ब्राउज़र में कोड दिखा रही है। मैं पाइथन के साथ शुरू करने की कोशिश कर रहा हूं लेकिन स्थानीय सर्वर (एम्पस का उपयोग करके) के लिए मेरा सर्वर सेटअप सही नहीं हो सकता है। पाइथन आईडीएलई और कमांड लाइन के माध्यम से बस ठीक चल रहा है, हालांकि, जब मैं ब्राउज़र में फ़ाइल खोलता हूं तो कोड प्रदर्शित होता है और नहीं चलता है।.py फ़ाइल

मैंने सीजीआई सेट अप करने के लिए इस http://www.imladris.com/Scripts/PythonForWindows.html ट्यूटोरियल का पालन किया, लेकिन यह काम नहीं कर रहा है।

यहां मेरे "हैलो वर्ल्ड" प्रोग्राम के लिए कोड है, यदि इससे कोई फर्क पड़ता है।

#!/usr/bin/env python 
# -*#!/usr/bin/python 

print "Content-type:text/html\r\n\r\n" 
print '<html>' 
print '<head>' 
print '<title>Hello Word - First CGI Program</title>' 
print '</head>' 
print '<body>' 
print '<h2>Hello Word! This is my first CGI program</h2>' 
print '</body>' 
print '</html>' 

कोई सुझाव?

+0

आप फ़ाइल निष्पादन योग्य बना दिया है (यह सेट करने खिड़कियों पर एक दर्द हो सकता है)? सर्वर में सीजीआई-स्क्रिप्ट सक्षम हैं? –

+2

यह काम करने के बाद - ट्रिपल-कोट्स जैसे "कुछ" "" ' – jsbueno

+0

@ जॉचिमपिलबोर्ग का उपयोग करके मल्टीलाइन स्ट्रिंग्स के लिए पाइथन का वाक्यविन्यास जांचें, मुझे विश्वास है कि मैंने सर्वर पर सीजीआई-स्क्रिप्ट सक्षम की है, लेकिन मुझे बनाने के बारे में निश्चित नहीं है फ़ाइल निष्पादन योग्य। जब मैं फ़ाइल (फ़ाइल के लिए आइकन, कोड नहीं) देखता हूं तो इसमें पाइथन लोगो होता है, इसलिए मुझे यकीन नहीं है कि इसका मतलब है कि यह निष्पादन योग्य है। – user1104854

उत्तर

6

आपका वेब सर्वर आपके पायथन कोड को एक्जिक्यूटिव के बजाए स्थिर फ़ाइल के रूप में देख रहा है। यहां लक्ष्य यह है कि आप अपाचे को पायथन निष्पादित करना चाहते हैं और stdout को उपयोगकर्ता के ब्राउज़र पर वापस भेजना चाहते हैं।

मैं एम्पस से परिचित नहीं हूं, लेकिन इस सेटअप को प्राप्त करने के लिए मूल अपाचे प्रवाह इस तरह कुछ है।

  1. संपादित httpd.conf के अपने विकल्प लाइन ExecCGI शामिल करने के लिए
  2. निम्न पंक्ति जोड़कर एक cgi हैंडलर के रूप में httpd.conf के साथ अपने अजगर फ़ाइल रजिस्टर:
    AddHandler .py
  3. पुनः प्रारंभ अपाचे
  4. सुनिश्चित करें कि आपकी शेबैंग लाइन (#!/Usr/bin/env python बिट शीर्ष पर) वास्तव में आपके पायथन निष्पादन योग्य के पथ पर इंगित करती है। सी पर रहने वाले python2.6 के लिए :, यह पढ़ सकता है:
    #!\Python26\python
  5. अपनी स्क्रिप्ट, पोर्टेबल होना चाहिए, तो इसके बजाय कुटिया लाइन अपने httpd.conf के लिए लाइन ScriptInterpreterSource registry जोड़ने को संशोधित करने की है, और यह सुनिश्चित करें कि विंडो खोलता बनाने * डिफ़ॉल्ट रूप से Python.exe के साथ .py फ़ाइलें। यह एक स्क्रिप्ट को डबल-क्लिक करके परीक्षण किया जा सकता है। यदि यह निष्पादित नहीं होता है, तो राइट-क्लिक करें, खोलें, फिर अन्य चुनें, और फिर अपने python.exe पर ब्राउज़ करें। "इस प्रकार की फ़ाइलों को खोलने के लिए हमेशा इस प्रोग्राम का उपयोग करें" बॉक्स को जांचना सुनिश्चित करें। इस here पर एक Microsoft ज्ञानकोष आलेख है।

अंत में, mod_wsgi या फास्टसीजीआई अपाचे को पाइथन निष्पादित करने के लिए पसंदीदा तरीका है, कम यातायात साइटों (प्रति दिन हजारों अनुरोधों के 10) के पूर्व होल्डिंग वरीयता के साथ। मैं वेब ढांचे (बहुत हल्के वजन) या डीजेंगो (भारी वजन, जैसे कि आप उपयोगकर्ता इनपुट एकत्र कर रहे हैं या डेटाबेस के साथ इंटरफेसिंग कर रहे हैं) जैसे वेब ढांचे को देखने की सलाह भी देंगे।

+0

एम्पस पहला पैकेज था जिसे मैंने देखा था जिसमें इसमें पाइथन बनाया गया था इसलिए मैंने इसे चुना। क्या कोई अन्य है जिसे आप अनुशंसा करेंगे? जब मैं PHP के साथ प्रोग्रामिंग कर रहा हूं, तो मैं xampp का उपयोग करता हूं, यह सुनिश्चित नहीं करता कि यह इसका समर्थन करता है या नहीं। – user1104854

+0

मुझे एहसास नहीं हुआ कि "एम्पस" अपाचे का विंडोज स्वाद था - मैं ज्यादातर लिनक्स लड़का हूं, और मैं ज्यादातर लाइटटैड का उपयोग करता हूं। कृपया संपादित उत्तर देखें। –

+1

इसके अलावा, आप cgi से mod-wsgi का उपयोग करना बेहतर होगा। मैं इसे प्रतिबिंबित करने के लिए उत्तर फिर से संपादित करूंगा, और लिंक जोड़ूंगा। –

संबंधित मुद्दे