2010-12-12 15 views
13

मेरे पास एक वीपीएस उबंटू 10.04 एलटीएस का एक नया इंस्टॉलेशन चला रहा है। मैं फ्लास्क माइक्रोफ्रेमवर्क का उपयोग करके एक लाइव एप्लिकेशन स्थापित करने की कोशिश कर रहा हूं, लेकिन यह मुझे परेशानी दे रहा है। मैंने नोट्स ले लिए, जबकि मैंने इसे चलाने की कोशिश की और यहां मेरा प्ले-बाय-प्ले है, यह तय करने के लिए कि मैं गलत कहां गया था।फ्लास्क चलाने के मेरे प्रयास के साथ कुछ भी गलत देखें? (mod_wsgi + virtualenv)

इंस्टालेशन

http://flask.pocoo.org/docs/installation/#installation

$ adduser myapp 
$ sudo apt-get install python-setuptools 
$ sudo easy_install pip 
$ sudo pip install virtualenv 

/home/myapp/ 
-- www/ 

$ sudo pip install virtualenv 

/home/myapp/ 
-- www/ 
-- env/ 

$ . env/bin/activate 
$ easy_install Flask 

MOD_WSGI

http://flask.pocoo.org/docs/deploying/mod_wsgi/

$ sudo apt-get install apache2 
$ sudo apt-get install libapache2-mod-wsgi 

बनाना WSGI फ़ाइल

$ nano /home/myapp/www/myapp.wsgi 

--myapp.wsgi contents:-------------------------- 
activate_this = '/home/myapp/env/bin/activate_this.py' 
execfile(activate_this, dict(__file__=activate_this)) 
from myapp import app as application 

/home/myapp/ 
-- www/ 
    -- myapp.wsgi 
-- env/ 

कॉन्फ़िगर अपाचे

$ nano /etc/apache2/sites-available/myapp.com 

-----myapp.com file contents --------------------- 
<VirtualHost *:80> 
    ServerName myapp.com 

    WSGIDaemonProcess myapp user=myapp group=myapp threads=5 python-path=/home/myapp/env/lib/python2.6/site-packages 

    WSGIScriptAlias//home/myapp/www/myapp.wsgi 

    <Directory /home/myapp/www> 
     WSGIProcessGroup myapp 
     WSGIApplicationGroup %{GLOBAL} 
     Order deny,allow 
     Allow from all 
    </Directory> 
</VirtualHost> 

मैं सिर्फ

$ cd /etc/apache2/sites-enabled 
$ ln -s ../sites-available/myapp.com 

पुनः प्रारंभ अपाचे

$ /etc/init.d/apache2 restart 

सर्वर मुझे एक 500 सर्वर त्रुटि पृष्ठ बनाया आभासी मेजबान फ़ाइल सक्षम करें। यहां नवीनतम त्रुटि लॉग है:

mod_wsgi (pid=3514): Target WSGI script '/home/myapp/www/myapp.wsgi' cannot be loaded as Python module. 
mod_wsgi (pid=3514): Exception occurred processing WSGI script '/home/myapp/www/myapp.wsgi'. 
Traceback (most recent call last): 
File "/home/myapp/www/myapp.wsgi", line 4, in <module> 
from myapp import app as application 
ImportError: No module named myapp 

त्रुटियों का संकेत है कि यह कुछ स्पष्ट रूप से स्पष्ट है, लेकिन मैं काफी खो गया हूं।

+0

वैसे, क्या आप 'cat' आदेश के बारे में जानते थे? यह एक फ़ाइल की सामग्री को प्रिंट करता है (इसलिए इस लॉग में यह आपके द्वारा 'नैनो' से स्वचालित रूप से कॉपी की गई चीज़ों का उत्पादन करेगा) –

उत्तर

8

जाहिर है, यह आपके "myapp" पैकेज नहीं ढूंढ सकता है। आप इस तरह से अपनी myapp.wsgi फाइल में पथ में जोड़ने चाहिए:

import sys 
sys.path.append(DIRECTORY_WHERE_YOUR_PACKAGE_IS_LOCATED) 
from myapp import app 

इसके अलावा, अगर myapp मॉड्यूल एक पैकेज है, तो आप रख सकते हैं और अपनी निर्देशिका में खाली __init__.py फ़ाइल चाहिए।

0

लाइन sys.path.append संपादित करें, इसे एक स्ट्रिंग होने की आवश्यकता है।

import sys 
sys.path.append('directory/where/package/is/located') 

सूचना एकल उद्धरण।