我刚刚发布了PyPi package,但是我自己B
发表之后,我发现有很多不应该的可见模块!
实际上,我只希望两个功能(pip-installed
和super_clean
)可见,并且它们都在simple_clean
中。
我不知道如何使用户看不到其他模块和功能。
任何帮助将不胜感激。
如果有用,这是我的gutenberg_cleaner.py
:
setup.py
答案 0 :(得分:1)
通常,没有办法在Python中“隐藏”给定的变量/函数/类/模块。一切都可以导入到用户,甚至包括标准库中的内容。
在实践中,在Python中惯用的是在不属于公共API的内容前面加上下划线,例如:
from gutenberg_cleaner import _internal_helper_method
这向知道此惯用语的用户表明“这不是要导入的”。
这实际上并没有阻止用户导入此内部功能,但是对于大多数项目而言,这已经足够了(我认为这是您应该在此处执行的操作)。
也就是说,还有另一种选择:有一个第三方库publication
可以精确地执行您想要的操作:您定义了可以导入的函数列表,而该库阻止了其余函数的导入。它并未广泛使用,但确实可以解决您的问题。