python ************** .. toctree:: :glob: :maxdepth: 1 ./* リダイレクトするとエラーになる ================================= :: 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() 実行しているスクリプト自身は__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