どのように基準のpythonパッケージがファイル名を含む期間
-
11-09-2019 - |
質問
を使用していdjangoいという名前のファイルmodels.admin.py やってみたいと思います、以下のアmodels.py:
from "models.admin" import *
しかし、私の構文エラーをダブルクォート.だいだい
from models.admin import *
しか"洋ないモジュールの名前管理"
必要があります。からのインポートpythonファイルと期間の名前の由来
解決
実際に、 ができ 輸入モジュール、無効な名前です。ができます。 imp
その例仮にファイル名 models.admin.py
,なにができる
import imp
with open('models.admin.py', 'rb') as fp:
models_admin = imp.load_module(
'models_admin', fp, 'models.admin.py',
('.py', 'rb', imp.PY_SOURCE)
)
ものdocsに imp.find_module
や imp.load_module
を始める前に、使用しています。
他のヒント
本当には、あなたが異常なファイル名(「」たとえば「の.py」の前に含むファイル名)IMPモジュールを使用して、モジュールをインポートすることができますしたいです>
>>> import imp
>>> a_b = imp.load_source('a.b', 'a.b.py')
>>> a_b.x
"I was defined in a.b.py!"
しかし、それは一般的に悪い考えです。それはあなたが「b.py」という名前のファイルを含む、「A」という名前のディレクトリを作成する必要があり、その場合には、パッケージを使用しようとしていることをより多くの可能性があります。その後、 "インポートa.bは、" / b.pyをロードします。
ファイルはmodels/admin.py
と呼ばれています。 (ソースする )
これは、admin.py
というディレクトリにあるmodels
呼ばれるべきれます。
そして、あなたはそれがあなたのPythonパスであると仮定し、from models.admin import *
を使用してインポートすることができます。
いいえ、あなたは、モジュールとしてのpythonファイルをインポートすることはできません。 (の.pyを含まない)のpythonモジュールの名前は、有効なPythonの名前でなければなりません(つまり、変数名として使用することができます)。