簡體   English   中英

我如何控制軟件包中的模塊以導入python?

[英]how can i control modules in package to import in python?

考慮一個例子,

我有一個包含模塊列表的軟件包:

 /mypackage/
   __init__.py
   mod1.py
   mod2.py
   mod3.py

prog1.py :我只想在這里允許mod2 prog2 :允許mod1,2

如果我寫

prog1.py
import mypackage
# only mod2 should import

prog2.py
import mypackage
# only mod1,mod3 should import

如何在包裝或模塊級別進行限制?

from mypackage import mod2

要么

from mypackage import mod1, mod3

我不認為軟件包應該控制誰以及如何導入它們,基本上軟件包不應該了解其進口商。 但是,如果出於某種原因仍然是個好主意,則可以通過以下方式獲取主文件名:

import __main__
main_file = __main__.__file__

然后修改

__all__

基於主文件名的模塊屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM