2010-12-12 18 views
13

Tôi có một VPS chạy một cài đặt mới của Ubuntu 10.04 LTS. Tôi đang cố gắng thiết lập một ứng dụng trực tiếp bằng cách sử dụng vi phim Flask, nhưng nó gây rắc rối cho tôi. Tôi đã ghi chép trong khi tôi cố gắng để có được nó chạy và đây là play-by-play của tôi trong một nỗ lực để xác định chính xác nơi tôi đã đi sai.Xem bất cứ điều gì sai với nỗ lực của tôi để có được Flask chạy? (mod_wsgi + virtualenv)

LẮP ĐẶT

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 

Tạo tập tin 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/ 

Cấu hình Apache

$ 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> 

Enable file máy chủ ảo Tôi vừa tạo

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

Restart Apache

$ /etc/init.d/apache2 restart 

Servers cho tôi một trang lỗi 500 máy chủ. Đây là nhật ký lỗi mới nhất:

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 

Lỗi này ám chỉ rõ ràng, nhưng tôi khá lạc mất.

+0

Nhân tiện, bạn có biết về lệnh 'cat' không? Nó in ra các nội dung của một tập tin (vì vậy trong bản ghi này nó sẽ tạo ra những gì bạn đã sao chép ra khỏi 'nano' tự động) –

Trả lời

8

Rõ ràng, nó không thể tìm thấy gói "myapp" của bạn. Bạn nên thêm nó vào đường dẫn trong tập tin myapp.wsgi của bạn như thế này:

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

Ngoài ra, nếu myapp mô-đun là một gói phần mềm, bạn nên đặt và trống tập tin __init__.py vào thư mục của nó.

0

Chỉnh sửa dòng sys.path.append, cần phải là một chuỗi.

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

Thông báo báo giá đơn.