Python 打包依赖

Python packaging dependencies

简单快速的问题...假设我有一个名为 miscfun 的自行创建的包,其中一些 module/script 看起来像...

# helper.py
import re
import os

def foo(x):
    # Do something with re

def bar(x):
    # Do something with os

设置适当的 setup.py 等之后。然后我可以 'install' 我的包并使用

加载它
import miscfun.helper

不过我刚才发现的是我也可以调用

miscfun.helper.os

miscfun.helper.re

'use' reos 模块!是不是很奇怪很迷惑?我能以某种方式阻止这种情况发生吗?

(如果这不是正常情况,我很乐意解释更多,但现在我希望这就足够了)

嗯,这是 python 模块的完全正常行为。一旦你 import 任何东西进入你的模块,你就会在模块命名空间中引入新的键(基本上 dict 就像 python 中的所有东西)。模块命名空间中的任何键都可以像往常一样在其他地方访问或导入。