0
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Pythonで好きな場所のファイルをimportする方法

Last updated at Posted at 2019-12-11

##条件
Pythonのバージョンによって?できるものとできないものがあるようです。
いくつか例をあげたので、もし失敗したら他の方法を試してみてください。

##フォルダの構成

├─python
| main.py
|
| ├─code
| | |mnist.py
|
| ├─dataset
| | |activation_function.py

##やりたいことリスト

  1. main.py内でmnist.pyimportしたい!!
  2. mnist.py内でactivation_function.pyimportしたい!!
  3. mnist.py内でmain.pyimportしたい!!

##やりたいこと1
main.py内でmnist.pyimportしたい!!

###方法1

main.py
import sys
sys.path.append("code")
import mnist

###方法2
Pythonの自作モジュールをimportしたいならsys.pathを設定しよう」を参考にさせていただきました。
自分の環境では動作しませんでした。環境によっては動作するかもしれません。

main.py
import sys
sys.path.append("python/code")
import mnist

##やりたいこと2
mnist.py内でactivation_function.pyimportしたい!!

###方法1
ゼロから作るDeepLearningを参考にしました。
自分の環境では動作しませんでした。環境によっては動作するかもしれません。

mnist.py
import sys, os
sys.path.append(os.pardir)  # 親ディレクトリのファイルをインポートするための設定
import dataset.activation_function

###方法2

mnist.py
import sys
sys.path.append("")
# sys.path.append("./")でも可能
# sys.path.append(".")でも可能
import dataset.activation_function

###方法3

mnist.py
import sys
sys.path.append("dataset")
import activation_function #ちょっと綺麗になる

##やりたいこと3
mnist.py内でmain.pyimportしたい!!

これはわかりませんでした!!可能であるのならば教えてください!!
まず下のファイルから上のファイルをimportするのはフォルダーの構造として駄目な気がするので、フォルダー構成を見直せ!ということなのかもしれません。
ちなみに以下のことを試してみましたが自分の環境では、動作しませんでした。

mnist.py

import sys
sys.path.append("../")
import main

##おわり
紹介した多くの方法がPython2系では動かないと思います。
Python3を使っておきましょう
いくつか動かないのはおそらく親フォルダーの扱いの差だと思うのですが、これはOS(MacとWindows)の差なのかな?あとで検証するかもです。

タイトルの「ファイル」の部分が適切では無い気がしますので、それに置き換わる何かがあればコメントで教えてくださいm(_ _)m

0
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?