有一个文件test.py
,位于目录上,例如/pyproject
。在/pyproject
中有一个名为api
的子目录,其子目录有两个名为gmail
和facebook
的子目录,并且在两个目录中都有.py
个文件,例如:
/pyproject/api/gmail/abc.py
/pyproject/api/facebook/xyz.py
从test.py输入abc和xyz py文件:
import api.gmail.abc
结果:
File "./test.py", line 3, in <module>
import api.gmail.abc
ImportError: No module named api.gmail.abc
有没有想法如何将xyz / abc从子目录导入到主test.py
文件?
答案 0 :(得分:1)
你需要在每个目录中都有一个空的__init__.py
文件,它是一个告诉python这个文件夹是模块的标记。我认为它应该解决python2的问题。
在python3中,导入稍有变化,你还需要使用-m
命令行参数。
如果您尝试运行的文件是例如.../pyproject/src/scraper.py
您需要将工作目录设置为项目根.../pyproject/
,然后运行:
python -m src.scraper
在此示例中,我使用较长的路径来显示子目录由.
而不是/
分隔。在您的情况下,python -m test
应该可以正常工作。
答案 1 :(得分:0)
做了一些R&amp; D之后,已经完成了
只需创建select
b.Name as BranchName,
COUNT(t.Id) as Transactions,
SUM(ti.Pages * ti.Rate) - SUM(t.Commission) as TotalSales,
SUM(ISNULL(ti.Pages, 0)) as Pages
from
Sales.Branch b
left join Sales.[Transaction] t
on b.Id = t.BranchId
and t.Date >= '2017-11-01'
AND t.Date < '2017-12-01'
left join Sales.TransactionItem ti
on ti.TransactionId = t.Id
group by b.Name
order by b.Name ASC
(一个空的py文件)并将其添加到所有子目录
比如
__init__.py
并添加主py文件
/pyproject/
api/
__init__.py
gmail/
__init__.py
abc.py
facebook/
__init__.py
xyz.py