簡體   English   中英

導入模塊時如何正確構建 package 以使用沒有模塊名稱的 function?

[英]How to properly build package to use a function without module name when importing the module?

我一直在嘗試打包,在 test.pypi 上測試它。

我的結構如下:

package_name/
|--- LICENSE
|--- pyproject.toml
|--- README.md
|--- tests/
|--- dist/
|--- src/
     |--- package_name.egg-info/
     |--- package_name/ #this package is the same name as the whole package     
          |--- __init__.py   #from .my_module import my_function()
          |--- my_module.py  #containing my_function()

我成功地將它上傳到 test.pypi。 我成功地 pip 在另一台機器上安裝它(使用 python 3.9.12 和 python)

然后我面臨以下問題::

import package_name

print(my_module.my_function()) #works
from package_name import my_module

print(my_module.my_function()) #works
from package_name import my_module

print(my_function())
> "NameError: 'my_function' is not defined". 

我懷疑它與初始化文件(?)有關。 我嘗試了一些不同的東西,但到目前為止似乎都沒有用。

使用“from package_name import my_module”時,我希望“my_function()”可以在沒有模塊名稱的情況下調用。

我確實嘗試了不同的方法,但到目前為止都沒有用。 在 stackoverflow 上也找到了很多主題,但到目前為止似乎都沒有用。 我只是想了解為什么我不能在不使用模塊名稱的情況下從單一模塊調用單一 function。

我更喜歡絕對導入: from src.package_name.my_module import my_function

暫無
暫無

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

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