- Google AppEngine versi 1.6.0
- VirtualEnv minimal versi 1.6.4
Asumsinya:
- Google AppEngine berada di ~/google_appengine atau path lengkapnya dilaptop saya /home/rahmad/google_appengine
- Lingkungan yang dibuat berada di ~/ngoprek atau path lengkapnya dilaptop saya /home/rahmad/ngoprek
- Directory untuk konfigurasi virtualenv berada di ~/ngoprek/env atau path lengkapnya dilaptop saya /home/rahmad/ngoprek/env
- Lingkungan ini dibuat dengan perintah
- virtualenv --python=python2.5 --no-site-packages env
Langkah-langkahnya:
- Buat berkas bernama gae.pth (atau terserah apa namanya asakan berakhiran .pth) di dalam directory ~/ngoprek/env/lib/python2.5/site-packages
- Berkas tersebut hanya berisi satu baris yaitu path lengkap dari Google AppEngine. Kalau di lingkungan saya akan tertulis:
- /home/rahmad/google_appengine
- Perhatikan ini harus path lengkap dan tidak boleh memakai ~ seperti: ~/google_appengine
- Buka berkas ngoprek/env/lib/python2.5/site.py
- Cari fungsi yang bernama main
- Pergi ke akhir fungsi main tersebut dan tambahkan dua baris berikut:
- from dev_appserver import fix_sys_path
- fix_sys_path()
- Uji apakah perubahan ini berhasil dengan:
- Mengatifkan virtualenv
- . env/bin/activate
- Menjalankan program interpreter python
- python
- Dan eksekusi perintah-perintah berikut:
- import yaml
- from google import appengine
- Jika kedua perintah tersebut berhasil dijalankan tanpa kesalahan, keluar dari python dan buka berkas: ~/google_appengine/google/appengine/tools/dev_appserver_import_hook.py
- Setelah perintah import sys (kira-kira baris ke-35) tambahkan kode berikut:
- import cgi
- Kemudian di dalam berkas yang sama cari definisi untuk class yang bernama FakeFile
- Di dalam definisi class ini cari variabel yang bernama ALLOWED_DIRS
- Ubah definisi variable ini sehingga menjadi seperti berikut:
- ALLOWED_DIRS = set([
- os.path.normcase(os.path.realpath(os.path.dirname(os.__file__))),
- os.path.normcase(os.path.abspath(os.path.dirname(os.__file__))),
- os.path.normcase(os.path.dirname(os.path.realpath(os.__file__))),
- os.path.normcase(os.path.dirname(os.path.abspath(os.__file__))),
- # required when using virtualenv
- # cgi is on system python folder /usr/lib/python2.5/cgi.py
- # os is on virtualenv python folder '/path/to/virtualenv/lib/python2.5'])
- os.path.normcase(os.path.realpath(os.path.dirname(cgi.__file__))),
- os.path.normcase(os.path.abspath(os.path.dirname(cgi.__file__))),
- os.path.normcase(os.path.dirname(os.path.realpath(cgi.__file__))),
- os.path.normcase(os.path.dirname(os.path.abspath(cgi.__file__))),
- ])
Ruwetnyalah Bug satu ini! Terus ini link untuk laporan bug ini, lihat-lihat apakah sudah diperbaiki! :p
No comments:
Post a Comment