tweepyがimportできない→パスを通せば良いんじゃね?

まずはtweepyをインスコ

$ sudo easy_install tweepy
Password:
Searching for tweepy
Best match: tweepy 1.7.1
Processing tweepy-1.7.1-py2.6.egg
tweepy 1.7.1 is already the active version in easy-install.pth

Using <span style="color:#FF0000;">/Library/Python/2.6/site-packages/tweepy-1.7.1-py2.6.egg</span>
Processing dependencies for tweepy
Finished processing dependencies for tweepy

こんな感じになるはず(人によって違うと思う)

続いて、pythonシェルに入ってtweepyをimportしてみる、、、

$ python
Python 2.6.6 (r266:84374, Aug 31 2010, 11:00:51) 
[GCC 4.0.1 (Apple Inc. build 5493)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

>>> import tweepy
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named tweepy

はい、エラーになる

パスが通っていないだけ

上記のこの部分に注目

Using <span style="color:#FF0000;">/Library/Python/2.6/site-packages/tweepy-1.7.1-py2.6.egg</span>

そう、ここにパスを通せば良い

これでパスを通す(打ち間違いに注意)

$ export PYTHONPATH=${PYTHONPATH}:/Library/Python/2.6/site-packages/tweepy-1.7.1-py2.6.egg

ちなみにPythonPathを確認する方法は

$ python

>>> import sys
>>> sys.path

とたたくと、ずらっと出てきます、結構出てきます。
この中に、上に示した赤いやつがあればおk(もれなくチェック)


そして、もう一度、pythonシェルに入ってtweepyをimportしてみる、、、

$ python
Python 2.6.6 (r266:84374, Aug 31 2010, 11:00:51) 
[GCC 4.0.1 (Apple Inc. build 5493)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

>>> import tweepy
>>>

これでおk、tweepyが使えるよ!!


注)この記事は完全なる走り書きであり、メモであり、気が向いたら書き改めます。そして、tweepy関連の続きも書ければ書きます。でわ


参考にしたブログ
http://d.hatena.ne.jp/Number6/20100116/1263631863

※初心者へ→gitを使ってソースをクローンしたいときは、ターミナルとかで、「$ git clone git://~」と書いていけばおk

※「tweepy.error.TweepError: Status is a duplicate.」のようなエラーメッセージをくらうときがありますが、これは、同じメッセージを何度もつぶやくなっと怒られているだけみたいです。つぶやく内容を変えてあげれば、解決するみたいです。

MAMPのMySQLでinsertすると文字が化けるので、最後の手段を・・・

まず環境は、


MacBook ProOS X 10.6.6)
iTerm
MAMP


と簡単にこんな感じ。

他のサイトやブログで紹介されているutf8への設定も終了済み。(ファイルをリネームして何チャラ間チャラってやつね)

そして「mysql>」のあとに「show variables like 'char%';」っていうクエリを叩くと、文字設定を確認できる。



うん、utf8になっているので良さそう。

そしてデータベース作ってテーブル作って、カラム作って、バリューを「insert」しようと思ったところ、、、



そう、このようになるのです、、、ちなみにこれはtestというテーブルに日本語の文字列をつっこんでいるところです。
「select * from test;」と叩いて、テーブルに格納した値を見ると文字化けしています。


そこで、ググりにググって、悩みに悩んだ末、出した結論がこれ



最後の手段として、そもそもテーブルを作るとき→「create table」するときに、クエリの最後の部分に「charset=utf8;」と書いてあげます。





mysql> create table test(name varchar(10), age int) charset=utf8;



注意!!こうすることによって、結果的に日本語の文字化けは無くなるみたいです。(「insert」後は文字化けせずに格納される)
しかし、「insert」するときは、シェル(iTerm)が悪いのか、何なのか分かりませんが、文字化けするのです。
だから、さきにエディタとかでクエリを書いておいて、コピペでクエリを投げるなどの工夫をが必要なのかなーと(面倒くせぇ)

確認のため「select * from test;」と叩くと、日本語が化けずに表示されているのが分かると思います。(画面キャプチャして見せてよって言う方ごめんなさい。疲れましたw)

かなり気持ち悪いですが、「シェル上では化ける、が、テーブル上では化けない」という結果で、とりあえずこの問題は停めておこうとします。

(もはや自分しか理解できない文体になっているかもですが、すいません)

「 'str' object is not callable 」というエラーへの対処

「 'str' object is not callable 」というエラーへの対処、ということで、初心者の私が苦しんだ実例をメモしておきます。
Djangoのお話ですが、誰かのお役に立てれば幸いです!!

ググっても何が悪いのか、良くわからず、気付いたらそんなことかよーと思えるようなアホなバグだったんですが、初心者の方は陥りやすいのかもしれませんねー。



urls.pyのこの部分が間違っていた
修正前
  (r'^accounts/make_account/$', 'make_account'), # アカウント作成

修正後
  (r'^accounts/make_account/$', 'bbs.registration.views.make_account'), # アカウント作成

※「しっかりパスを通せ」ということだと思います


かなり簡略化(ってか間違い部分しか書いていないw)しましたが、もしこのエラーに遭遇した方は、こんな単純なミスが原因かもしれませんよ。一度ご確認を!!

約3ヶ月前までEmacsの存在すら知らなかった初心者の、気合いの黒ベース環境設定

主に自分のメモ用として書いていますが、もしだれかのお役に立てれば良いですね。

自分はEmacs歴あさあさなので、何か至らぬ点があるかもしれませんが、お許しくださいw

設定をする上で少し迷った部分もありましたので、少しだけ説明も挟んでおきます。
なおMacOSでの設定なので、注意してください。


まず、設定をどこでするのか?どこのファイルに書くのか?
っという疑問が初心者のかたには出てくると思います。

でも簡単!!

自分のホームディレクトリに
.emacs
という名前のファイルを作成する、もしくは存在すればそれを利用するだけです。

そもそも先頭に「.」の付くファイルというのは、なんらかの設定情報が書かれたファイルとなっており、Finderには表示されません(表示することもできます)。

なので、ここら辺でかなり戸惑う方も多いのではないでしょうか。

そして以下の設定を書いて、保存、再起動でEmacsは自分好みの設定に生まれ変わります!!


 
;;; 現在行に色をつける
(global-hl-line-mode 1)

;;; 履歴を次回Emacs起動時にも保存する
(savehist-mode 1)

;;; ファイル内のカーソル位置を保存する
(setq-default save-place t)

;;; 対応する括弧を表示させる
(show-paren-mode 1)

;;; シェルに合わせるため、C-hは後退に割り当てる
(global-set-key (kbd "C-h") 'delete-backward-char)

;;; モードラインに時刻を表示する
(display-time)

;;; 行番号・桁番号を表示する
(line-number-mode 1)
(column-number-mode 1)

;;; リージョンに色をつける
(transient-mark-mode 1)

;;; ツールバーとスクロールバーを消す
(tool-bar-mode -1)
(scroll-bar-mode -1)



;;; 言語を日本語にする
(set-language-environment 'Japanese)

;;; UTF-8とする
(prefer-coding-system 'utf-8)

;;; commandをmetaとして利用する
(setq mac-command-key-is-meta t)



;<背景色、文字色関連>

;;; 背景色を黒にする(文字色を黒以外に変更してから)
(set-background-color "black")

;;; 文字色を設定する
(set-foreground-color "#ffffff")

;;; カーソル色を設定する
(set-cursor-color "white")

;;; global-font-lock-mode(色の設定等)を有効にする
(global-font-lock-mode t)
;;; そしてそれらのオプションとも言うべき設定をおこなっていきます。
(setq font-lock-maximum-decoration t)
(setq fast-lock nil)
(setq lazy-lock nil)
(setq jit-lock t)

;;; 透明度を設定する(アクティブ時 ノンアクティブ時)
(setq default-frame-alist
(append (list
'(alpha . (85 30))
) default-frame-alist))



以上、全然まとまってません、まとめてませんw

欲しい部分だけをコピペで持っていって下さいね!!

Djangoで静的に画像を表示させる(MEDIA_ROOT、MEDIA_URL諸々の設定方法)

DjangoPythonで開発を進めていたところ、画像を表示しようと思い、ふつ〜にHTMLをかきかきしていると...「あれ?」「お?」「表示されない」という事態に陥りました。

どういうことかと思い、いろいろ調べていると、どうやらsettings.pyのMEDIAまわりの設定が必要なんだろうと...
http://djangoproject.jp/doc/ja/1.0/howto/static-files.html


お決まりのドキュメント見ても、う〜ん今一ピンと来ない。ってか説明少なくないかとw


っということで最後の砦Google先生のお力をお借りすることに(当然)、うん。

いろいろ調べていると、画像表示に関することが書かれているサイトがあまりないこと、っていうか自分がヘボ過ぎて他の偉人先人の方々のお言葉が理解できません。涙

っということで、試行錯誤の末に静的に画像を表示させることができたので、自分と同じような初心者の方々に参考にして頂ければと思います!!


ここから↓↓↓↓

基本的にほとんど初期設定のまま。
http://djangoproject.jp/doc/ja/1.0/intro/tutorial01.html#intro-tutorial01
(この手順で開発を進めているということです)


本プロジェクトのディレクトリ構成(画像ファイルの置き場所)
authtest/authtest/static/images/○○.gif


○○.gifを○○.html(テンプレート)で表示したい(静的に)!!(これが目的)
このプロジェクトは勉強用に作った物ですので、実際にサービスとしてリリースする方は違う方法で画像を表示したり諸々したりするみたいなので、注意して下さい(ってか、そんなのわかってますよね、失礼)


ということで、具体的な設定を下記に。

 
settings.pyに以下の設定を追加

  import os

  BASE_PATH = os.path.abspath(os.path.split(__file__)[0])

  MEDIA_ROOT = os.path.join(BASE_PATH, 'static')

  MEDIA_URL = '/static_site/'

 
urls.pyに以下の設定を追加

  (r'^static_site/(?P.*)$','django.views.static.serve', {'document_root': settings.MEDIA_ROOT}),

 
○○.html(テンプレート)に以下の設定を追加

  
  (↑の「im○」は「img」ね)

以上、こんだけでDjangoPython上で静的に画像の表示ができるようになるはずです!!
ディレクトリ構成が違うかったり、画像の置き場所が違うかったりすると、全く表示できませんので、細心の注意を払って設定していくことをお勧めします(特に初心者の方)!!



追記(3/20)

 
urls.pyにこの設定を追記

  from django.conf import settings

macで確実にアンインストールをする方法

macで確実にアンインストールを行う方法として、こちらのAppCleanerというのがあります。
http://www.freemacsoft.net/AppCleaner/index.php

アイコンをそのままゴミ箱へ突っ込んだらアプリケーション自体は消え去ってくれますが、完全に消去できているかというとそうではない。

設定ファイルやらキャッシュやら、細かいファイルは残ったままになってしまいます。

ということで、このソフトを使うことできれいさっぱりアンインストールできちゃうというわけですな。


細かいことが気になる方は、こちらを参考に
http://ibadora.blog17.fc2.com/blog-entry-24.html

初学者がObjective-Cで「?」となる部分をチェック(その1)

C++を学生の頃に触っていたということもあって、基本的にObjective-Cにも入りやすいのかな〜と思いきや、そうでもないんだなと。。。

基本的な構文などは類似していますが、かなり不思議に感じるのがObjective-C

早速C++とは異なる部分をストックしておこうと思います。(個人的に注意しておきたいと思った部分も書いていますので、悪しからず)



1. 文字列の表記
文字列は「"」で囲み、先頭の「"」の前に「@」を付けて記述し、「NSString」クラスのオブジェクトとして扱われる。

 
例) @"iiapp" // 文字列「iiapp」

また、「@」を記述しなかった場合は、C言語のNULL終端文字列として扱われる。

 
例) "iiapp" // 文字列「iiapp」

結局どっちでも良いのか?っという感じ。


2. 変数の表記
変数の宣言をるすには、先に「型」を指定し、その後ろに変数名を指定する。もちろん「=」演算子で初期値の指定もできる。

 
例) NSInteger i; // 「NSInteger」型の変数「i」を宣言する
   NSInteger j = 2; // 「NSInteger」型の変数「j」を宣言し、初期値として「2」を代入する

C++だと「int i;」てできたのに、ちと面倒くさいよねーw


3. 変数の初期化
Objective-Cのオブジェクトで無効な状態を表すのが「nil」で、「0」と等価である。

 
例) iiapp = nil; // 変数「iiapp」を初期化する

nil、にる?、ニル?、違和感を感じるのは私だけか・・・


4. 定数の表記
Objective-Cでは、定数は「enum」「const」「#define」を使用して定義する。

 
例) const NSInteger iiapp = 10; // 「NSInteger」型の定数「iiapp」を「10」として定義する

   // 列挙を定義する
   enum {
      kOneValue = 1, // 定数「kOneValue」を「1」として定義する
      kTwoValue, // 定数「kTwoValue」を「2」として定義する
      kThreeValue // 定数「kThreeValue」を「3」として定義する
   };

   // プリプロセッサディレクティブで定義する
   // マクロ「kTimeout」を「10.5」として定義する
   #define kTimeout 10.5

iPhoneアプリの開発では、文字列定数を多く使用する。文字列定数は「NSString」クラスの文字列です。文字列定数はソースファイルで定義し、他のファイルから参照できるようにヘッダファイルで「extern」付きで宣言する。

 
例) (ソースファイル)
   // 文字列定数「kMyObjType」を「MyObjType」という文字列として定義する
   NSString *kMyObjType = @"MyObjType";

   (ヘッダファイル)
   // ソースファイルで定義している文字列定数「kMyObjType」を参照できるように宣言する
   extern NSString *kMyObjType;

こういう部分は頭に入れておかないと、コードリーディングするときなんかに困りますよねー


5. ヘッダファイルの読み込み
ヘッダファイルで定義されている定数を使用したり、クラスを使用したりするには、ヘッダファイルを読み込む必要がある。ヘッダファイルを読み込むには、プリプロセッサディレクティブの「#import」文を使用する。


例) // システムヘッダファイルを読み込む
   #import <ヘッダファイル名>;

   // ユーザーヘッダファイルを読み込む
   #import "ヘッダファイル名";

面倒くさいけど、基本的な部分ですなー


とりあえずこの辺りまで。
長くなり過ぎるのも疲れますので。

次はクラス等等を書いてみる予定です!!