簡體   English   中英

使用包的Python項目中的ModuleNotFoundError

[英]ModuleNotFoundError in a Python project using packages

我有一個帶有相當簡單的包結構的Python項目(python 3.6)。 我的目標是擁有一個包含模塊的軟件包,這些模塊可在其他軟件包中重復使用。 結構如下:

    my_project                   
    ├── /docs           
    ├── /src
    │   ├── __init__.py                
    │   ├── /common
    │   |    |── __init__.py      
    │   |    |── common_module.py
    │   ├── /packageA
    │   |    |── __init__.py      
    │   |    |── modA.py

問題是當我在modA.py執行以下modA.py

    from src.common import common_module as cm

我收到以下錯誤: ModuleNotFoundError: No module named src.common

到目前為止,我嘗試過的是

  • 確保我具有正確的包結構,如https://docs.python.org/3/tutorial/modules.html
  • 通過export PYTHONPATH=<path_to_project>/src在我使用的虛擬環境中擴展PYTHONPATH
  • 也將__init__.py放在/my_project
  • 閱讀有關StackOverflow的其他問題,但沒有一個提供解決方案。 他們中的一些人正在使用sys.path ,據說即使可行,這也不是一個好的解決方案。

這些都不起作用,並且我已經在這個問題上苦苦掙扎了一段時間了,因此任何建議都會受到贊賞。

為了使此導入正常進行,PYTHONPATH必須為.../my_project ,而不是.../my_project/src

是的,您應該在project放入__init__.py
然后export PYTHONPATH = <LOCAL_PATH_TO_...>/project

暫無
暫無

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

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