Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python名称空间';导入X';和';从X导入';_Python_Python 3.x_Sqlalchemy_Namespaces - Fatal编程技术网

Python名称空间';导入X';和';从X导入';

Python名称空间';导入X';和';从X导入';,python,python-3.x,sqlalchemy,namespaces,Python,Python 3.x,Sqlalchemy,Namespaces,以下代码起作用: from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() 但是,以下方面: import sqlalchemy Base = sqlalchemy.ext.declarative.declarative_base() 抛出:模块“sqlalchemy”没有属性“ext”。这怎么可能呢?sqlalchemy是一个包,导入包不会自动加载其子模块。当你这样做的时候 impor

以下代码起作用:

from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
但是,以下方面:

import sqlalchemy
Base = sqlalchemy.ext.declarative.declarative_base()

抛出:
模块“sqlalchemy”没有属性“ext”
。这怎么可能呢?

sqlalchemy
是一个包,导入包不会自动加载其子模块。当你这样做的时候

import sqlalchemy
Base = sqlalchemy.ext.declarative.declarative_base()
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
导入系统不会加载
sqlalchemy.ext
子模块,因为您没有请求它

当你这样做的时候

import sqlalchemy
Base = sqlalchemy.ext.declarative.declarative_base()
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
您已明确请求加载
sqlalchemy.ext
sqlalchemy.ext.declarative
以便访问正常

你也可以这样做

import sqlalchemy.ext.declarative
Base = sqlalchemy.ext.declarative.declarative_base()
它还将加载
sqlalchemy.ext
sqlalchemy.ext.declarative


有些包会自动将其子模块加载到其
\uuuu init\uuuuu.py
中,因此您不必显式导入子模块。但是,这不是您应该依赖的。

sqlalchemy
是一个包,导入包不会自动加载其子模块。当你这样做的时候

import sqlalchemy
Base = sqlalchemy.ext.declarative.declarative_base()
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
导入系统不会加载
sqlalchemy.ext
子模块,因为您没有请求它

当你这样做的时候

import sqlalchemy
Base = sqlalchemy.ext.declarative.declarative_base()
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
您已明确请求加载
sqlalchemy.ext
sqlalchemy.ext.declarative
以便访问正常

你也可以这样做

import sqlalchemy.ext.declarative
Base = sqlalchemy.ext.declarative.declarative_base()
它还将加载
sqlalchemy.ext
sqlalchemy.ext.declarative

有些包会自动将其子模块加载到其
\uuuu init\uuuuu.py
中,因此您不必显式导入子模块。不过,这不是你应该依赖的