如何将[.myfolder.pyfile]导入为[其他内容]?

2024-06-26 01:49:15 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有

project
   |__ utilities
   |      |__ foo.py
   |
   |__ boost_extensions
   |      |__ myclass.cpp
   |      |__ myclass.so
   |
   |__ someotherstuff
   |      |__ bar.py      
   |
   |__ mylib.py
   |
   |__ __main__.py

可以在main.py中执行类似操作吗

import .utilities.foo as Foo
# this function will pass Foo to C++ and initialize it to a global variable
initCppFunction(Foo)

我已经尝试过了,但是它给了我一个无效的语法错误(我尝试这么做是因为从boost/python导入python模块时出现了一些问题)。有办法做到这一点吗

谢谢


Tags: topyprojectsofoomainmyclassbar
2条回答

我认为这里的问题是这些文件夹中都没有__init__.py,无论是project文件夹还是utilitiesboost_extensionssomeotherstuff

为了让Python知道您希望能够进行导入,它必须知道有一组完整的代码,称为包。您可以将__init__.py文件放在任何您想要形式化的地方,并告诉Python“这是一个相关代码包”

https://docs.python.org/3/reference/import.html#regular-packages

编辑

第一个答案也提出了一个很好的观点,即您认为from x.y import z是正确的语法

编辑2

克里希南是完全正确的。__init__.py文件中不需要任何内容。如果需要,您可以将代码放入其中,但这根本不是必需的

使用

from.utilities将foo作为foo导入

相关问题 更多 >