import時のos.chdirは意味がない?
http://d.hatena.ne.jp/showyou/20090106#1231244154で
つまり、os.chdirするとかPYTHONPATHにプロジェクトのTOPのパスを指定しておけば子でないフォルダでもいいわけか。
とか書いてるが、どうも怪しい。
下記のディレクトリ構成だったときに
- python_import_test
- a
- a.py
- ab.py
- b
- common
- lib.py
- a
次のコードを実行すると、
#!/usr/bin/env python execPath = "/home/yuki/tmp/python_import_test/" import os os.chdir(execPath) print os.getcwd() import ab from common import lib
ab.py(中身はprint("ab.py"))は読まれるくせにcommon.lib.py(中身はprint("common"))は読まれない。しかし
/home/yuki/tmp/python_import_test
ab.py
Traceback (most recent call last):
File "a/a.py", line 9, in
from common import lib
ImportError: No module named common
sys.path.insert(0,'path')の方がよさそう。
#!/usr/bin/env python execPath = "/home/yuki/tmp/python_import_test/" import os,sys sys.path.insert(0,execPath) import ab from common import lib
ab.py
common.py