看看:
In [1]: from sqlalchemy import select
In [2]: select
Out[3]: <function sqlalchemy.expression.select>
我不明白上面的代码如何工作。您应该始终指定完整路径吗?像这样:
In [1]: from sqlalchemy.sql.expression import select
In [2]: select
Out[2]: <function sqlalchemy.expression.select>
另一个问题:sqlalchemy
告诉我路径是sqlalchemy.expression.select
,但是“ sql”部分呢。
看看:
In [1]:from sqlalchemy.expression import select
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
from sqlalchemy.expression import select
ImportError: No module named 'sqlalchemy.expression'
Python为何会忽略这里的sql部分:sqlalchemy.expression.select
,而当我尝试使用他自己的路径时,它将不起作用。
请告知
答案 0 :(得分:0)
这是因为在sqlalchemy的__init__.py
中,它从.sql导入select。在表达式下,如何从.sql导入?如果您还查看sqlalchemy.sql的__init__.py
,它已经从.expression中的select导入。因此,尝试进行from sqlalchemy.sql.expression
时无需提供完整路径import select
。您可以from sqlalchemy import select
。
如前所述,由于sqlalchemy
已从select
中的__init__.py
导入,因此将忽略sql部分。