python¶
リダイレクトするとエラーになる¶
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 0: ordinal not in range(128)
と出るときの対処方。これは
print(body.encode(sys.getfilesystemencoding()))
でよい。
Apache and mod_wsgi¶
apt-get update
apt-get upgrade
apt-get install apache2 python-setuptools libapache2-mod-wsgi
ls -alt /etc/apache2/mods-enabled/wsgi.load
⇒できた
mkdir ~/flask
cd ~/flask
cat testwsgi.py
#!/usr/bin/env python
# -*- coding:utf-8 -*-
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'wsgi'
if __name__ == '__main__':
app.run()
cat test.wsgi
# -*- coding:utf-8 -*-
import sys, os
sys.path.append('/home/kanai/flask')
from testwsgi import app as application
cat /etc/apache2/sites-enabled/001-wsgi-test
WSGIDaemonProcess user=root group=root threads=5
WSGIScriptAlias /hoge /home/kanai/flask/test.wsgi
WSGIScriptReloading On
とかかく
その他¶
importを使うとmoduleとしてincludeされる。単に「その場にあるように読み込みたい」ときはexecfile(<path>)
実行しているスクリプト自身は__file__あるいはsys.argv[0]で分かる。 実行しているスクリプトのディレクトリについて考える。 __file__のみの場合、~/a.pyとかで実行されているとパスが正常に返らないので、 sys.path.dirname(sys.path.abspath(__file__))でよい。 スクリプト名自信はos.path.basenameでとる。
カレントディレクトリについては、os.getcwd()でよい。
sudo easy_install PyYAML
sudo pip install PyYAML --proxy=127.0.0.1:8080