Ale*_*ird 37 python import module package python-import
我正在使用django,我有一个名为models.admin.py的文件,我想在models.py中做以下想法:
from "models.admin" import *
Run Code Online (Sandbox Code Playgroud)
但是,我得到双引号的语法错误.但是如果我这样做的话
from models.admin import *
Run Code Online (Sandbox Code Playgroud)
然后我得到"ImportError:没有名为admin的模块"
有没有办法从名称中有句号的python文件导入?
Cat*_*lus 27
实际上,您可以导入名称无效的模块.但你需要使用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)
)
Run Code Online (Sandbox Code Playgroud)
但是在开始使用它之前imp.find_module和imp.load_module之前阅读文档.
Edw*_*per 12
如果你真的想,你可以使用imp模块导入一个具有不寻常文件名的模块(例如,在'.py'之前包含'.'的文件名):
>>> import imp
>>> a_b = imp.load_source('a.b', 'a.b.py')
>>> a_b.x
"I was defined in a.b.py!"
Run Code Online (Sandbox Code Playgroud)
然而,这通常是个坏主意.你更有可能尝试使用包,在这种情况下你应该创建一个名为"a"的目录,其中包含一个名为"b.py"的文件; 然后"import ab"将加载a/b.py.
| 归档时间: |
|
| 查看次数: |
21954 次 |
| 最近记录: |