2012-09-20 14 views
12

को निर्दिष्ट मैं हाल ही में इतना है कि मैं विभिन्न ओएस पर bowser अनुकूलता (यानी गैर लिनक्स) परीक्षण कर सकते हैं मेरी Django परियोजनाओं में निम्न कार्य के आदी हो गए हैं:Django runserver त्रुटि बंदरगाह

$ sudo ./manage.py runserver 0.0.0.0:80 

यह करने के लिए मुझे अनुमति देता है नेटवर्क पर किसी भी मशीन के माध्यम से परियोजना का उपयोग करें।

हालांकि, मैं सिर्फ सेटअप एक नई मशीन और यह आदेश मुद्दों निम्न त्रुटि:

मैं समझता हूँ कि Django मॉड्यूल ढूंढने में कठिनाई हो रही है, मैं क्या समझ में नहीं आता कि सादे पुराने है:

$ sudo ./manage.py runserver 

ठीक चलाता है। मैं बस यहाँ कर रहा हूँ बंदरगाह बदल रहा है, निश्चित रूप से? और, ज़ाहिर है, यह अतीत में ठीक काम किया।

एनबी।
1. मैं Django 1.4
2 का उपयोग कर रहा हूं 2. मैंने वर्चुअलएन्व और सिस्टम पर कोशिश की है और मुझे एक ही परिणाम मिलता है।
3. मेरे पास django स्थापित सिस्टम चौड़ा नहीं है (केवल वर्चुअलएन्ड्स में)

किसी भी मदद की बहुत सराहना की जाएगी।

+0

मैं वास्तव में क्यों वह काम नहीं करता नहीं जानता:

यह मानते हुए कि आपके virtualenv कंटेनर .virtualenvs कहा जाता है और वहाँ एक env उस में myproject कहा जाता है, इस आदेश आप लिखने के लिए है। यदि आप './manage.py रनरवर 0.0.0.0: 8000' चलाते हैं (यानी पोर्ट पर> 1024 बिना सूडो) – Eli

+0

मुझे सिस्टम पर एक ही त्रुटि मिलती है, और वर्चुअलएन्व में निम्न त्रुटि होती है: 'त्रुटि: आप डॉन नहीं करते हैं उस पोर्ट तक पहुंचने की अनुमति नहीं है। –

+0

क्या यह काम करता है अगर आप इसे स्पष्ट रूप से पायथन से कॉल करते हैं: 'python manage.py runerver 0.0.0.0: 8000' –

उत्तर

18

मुझे लगता है कि सुडो कमांड सुपरसुर संदर्भ में प्रक्रिया चलाएगा, और सुपरसुर संदर्भ में वर्चुअलएन्विन सेटिंग्स की कमी होगी।

आप अजगर द्विआधारी उदाहरण के लिए, स्पष्ट रूप से अपने virtualenv पर कॉल करने के लिए कोशिश कर सकते हैं:

sudo $(which python) manage.py runserver 0.0.0.0:80 

virtualenv स्थापित करने के लिए एक खोल स्क्रिप्ट बनाने और इसके बजाय manage.py runserver, तो sudo इस स्क्रिप्ट कहते हैं।

#!/bin/bash 
source /home/darwin/.virtualenvs/foo/bin/activate 
cd /path/to/project/foo 
python manage.py runserver 0.0.0.0:80 

अपने वास्तविक virtualenv की जड़ और /path/to/project/foo अपनी परियोजना की जड़ के साथ साथ /home/darwin/.virtualenvs/foo बदलें।

+0

ध्यान दें कि सुडो का उपयोग करने से आपके स्थानीय पर्यावरण के पायथन का उपयोग नहीं होगा, बल्कि यह आपके सिस्टम के डिफ़ॉल्ट का उपयोग करेगा पायथन (आप अपने आवश्यक पैकेज याद कर सकते हैं) –

+1

@ ऋषभग्राहारी वास्तव में, उत्तर अपडेट –

0

भागो
manage.py runserver 0.0.0.0:8000
अर्थात्। अलग बंदरगाह में सर्वर और नहीं डिफ़ॉल्ट पोर्ट 80
चलाने जबकि है बजाय खोल स्क्रिप्ट बनाने के बजाय, एक और समाधान तक पहुँचने यूआरएल पोर्ट संख्या

6

यहाँ का उपयोग करें, बस जो पायथन निष्पादन आप आदेश में उपयोग करना चाहते हैं निर्दिष्ट करें:

$ sudo ~/.virtualenvs/myproject/bin/python manage.py runserver 0.0.0.0:80 
संबंधित मुद्दे