如何使用包名称调用python模块

how to call python module with package name

我想制作一个可分发的python模块,所以我想让用户通过调用包名来调用模块内部的函数。

例如

/my_package/
/my_package/__init__.py
/my_package/src/
/my_package/src/__init__.py
/my_package/src/my_module.py

以及mymodule.py的内容:

def test(): print('hello!')

在这种情况下,我想让用户使用我的模块,比如:

>>> import mypackage as mp
>>> mp.test()
hello!

就像TensorFlow,Numpy,等等!!!!

我应该如何配置文件和路径信息??

事先谢谢:)


在该文件中:

/my_package/__init__.py

添加线:

1
from src.my_module import test


我认为你只是想test暴露,但很多其他函数的函数。所以,你可以分别保持在你的my_package/__init__.pyexposes __all__列表是由任何其他外部方法被使用。

所以,你会看起来像my_package/__init__.py

1
2
3
4
from src.my_module import test


__all__ = [test, ]

你可以读到关于__all__https://///modules.html教程2 docs.python.org #进口从该包