Kon*_*nev 2 python module python-module python-3.x
我创建了一个名为"custom_module"的文件夹,我在文件夹中有__init__.py,其中包含:
__all__ = [
'Submodule1',
'Submodule2'
]
Run Code Online (Sandbox Code Playgroud)
从我阅读的文档中我应该可以调用import custom_module并获取对包的访问权限,但是这不会发生.如何让python识别我的包?我正在使用python 3.2
更新: 包不在python文件夹中.python环境如何找到它,因此我可以通过名称成功导入它.
您有两个截然不同的概念:包和模块.
您认为模块是一个模块:包含类,变量等的Python脚本.您可以通过其文件名导入它,然后可以访问其命名空间中的变量.
甲包是被一个文件夹内组合在一起的模块的集合.如果文件夹包含一个名为的文件__init__.py,Python将允许您导入整个文件夹,就好像它是一个模块一样.这将运行代码__init__,但不一定会导入该文件夹中的所有模块.(这是一个深思熟虑的设计选择:包通常非常大,导入所有模块可能需要很长时间.)
package.thing默认情况下,导出(as )的唯一内容是内部定义的变量__init__.如果你想submodule成为package.submodule,你需要在里面导入它__init__.
__all__是一个相关的概念.简而言之,它定义了在您执行时导入的内容from package import *,因为Python不容易计算出应该是什么.你通常不需要它.
sys.path拥有Python搜索路径.在尝试使用import模块和软件包之前,请将其设置为包含您的路径:
import sys
sys.path.insert(0, 'your_path_here')
import custom_module
Run Code Online (Sandbox Code Playgroud)