現在、親ディレクトリに別のPythonファイルをインポートする必要があるPythonファイルがあります。問題は、インポートしたいファイルに数字で始まる名前が付いていることです。数値で始まる親ディレクトリからモジュールをインポート
ファイルの構造以下の通りである:私は123.pyファイルをインポートしたい
parent/
├── 123.py
└── child/
└─── my_file.py
、これを達成するための方法ですが?
現在、親ディレクトリに別のPythonファイルをインポートする必要があるPythonファイルがあります。問題は、インポートしたいファイルに数字で始まる名前が付いていることです。数値で始まる親ディレクトリからモジュールをインポート
ファイルの構造以下の通りである:私は123.pyファイルをインポートしたい
parent/
├── 123.py
└── child/
└─── my_file.py
、これを達成するための方法ですが?
いいえ、これは有効なPythonモジュール名ではありません。手紙から始めて、それを何か他のものと呼んでください。
前の答えは、モジュール/変数の名前を付ける場合は、数字で開始しないでください。しかし、そのような名前のモジュールをインポートする必要がある場合でも、それは可能です。
例えば、モジュール123.py
から変数x
にアクセスするには:あなたの質問の他の部分については
>>> from importlib import import_module
>>> onetwothree = import_module('123')
>>> onetwothree.x
、親ディレクトリにあるモジュールは、あなたが最初にあなたのSYSパスにそのディレクトリを追加することができます。
を上記>>> import sys
>>> sys.path.append('path/to/dir')
Read more about naming conventions from PEP 8
、それはMODUに名前を付けることが望ましいではありませんそれは、物事がもっと複雑になるためです。 PEP 8では、ネーミングは小文字で、アンダースコアを使用して読みやすくすることを推奨しています。 PEP 8はルールのセットではなく、ガイドラインです。モジュール名が必要な場合は、Lgiroの答えに従うことができます。
インポートできるもう1つの方法は、__init__.py
ファイルと相対インポートを使用することです。 child.py
from .. import parent
Question related to relative import
で次にparent/
├──__init__.py
├── parent.py
└── child/
├───__init__.py
└─── child.py