回答編集履歴
1
微修正
test
CHANGED
@@ -8,9 +8,9 @@
|
|
8
8
|
|
9
9
|
ファイルの入出力を相対パスで書く時はカレントディレクトリが基準で、
|
10
10
|
|
11
|
-
相対importはlib.pyの場所
|
11
|
+
相対importはlib.pyの場所が基準です。
|
12
12
|
|
13
|
-
(というかmain.pyから見たパスが使われるなら、lib.pyから**見た場所じゃない**ということでそれは**相対**じゃない
|
13
|
+
(というかmain.pyから見たパスが使われるなら、lib.pyから**見た場所じゃない**ということでそれは**相対**じゃないですよね?)
|
14
14
|
|
15
15
|
|
16
16
|
|
@@ -40,9 +40,15 @@
|
|
40
40
|
|
41
41
|
```
|
42
42
|
|
43
|
+
と書くのが絶対importで、これはsys.pathから探索されます。
|
44
|
+
|
43
|
-
|
45
|
+
上記の場合実行スクリプトのmain.pyがある場所(要はhogeディレクトリ)が基準になると期待して書いています。
|
44
46
|
|
45
47
|
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
それに対して、
|
46
52
|
|
47
53
|
```python
|
48
54
|
|
@@ -58,7 +64,9 @@
|
|
58
64
|
|
59
65
|
```
|
60
66
|
|
61
|
-
書くのが相対importでしょう。
|
67
|
+
と書くのが相対importでしょう。
|
68
|
+
|
69
|
+
これらはlib.pyがある場所(要はlibsディレクトリ)を基準に探索します。
|
62
70
|
|
63
71
|
|
64
72
|
|
@@ -70,4 +78,4 @@
|
|
70
78
|
|
71
79
|
だいたいにおいて相対importを使う方が自然だと思います。
|
72
80
|
|
73
|
-
例えば「ちょっと気が変わってlibsというパッケージ名を別の名前にしたくなった」とか「libsの上にもうひとつ親パッケージを作って `hogehoge.libs` と一段深くしたくなった」とかいう時に、相対importが使わていればlib.pyの中
|
81
|
+
例えば「ちょっと気が変わってlibsというパッケージ名を別の名前にしたくなった」とか「libsの上にもうひとつ親パッケージを作って `hogehoge.libs` と一段深くしたくなった」とかいう時に、相対importが使われていればlib.pyの中を変更する必要がないという利点があるからです。
|