[英]Python module not found when calling from another
我有這個項目結構:
/project_name
main.py
----- __init__.py
------ /modules
-------- __init__.py
-------- module1.py
-------- module2.py
我已經編輯以添加更多信息。 在工作並測試了很多解決問題的建議之后,沒有任何效果。
環境
問題
從 VScode 運行 main.py 時
from modules.module1 import *
if __name__ == "__main__":
pass
這個錯誤引發
from module1 import *
ModuleNotFoundError: No module named 'module2'
模塊
模塊1.py
from module2 import *
模塊2.py
def test():
print("just testing")
所以當我從 main.py 導入一個導入另一個模塊的模塊時,問題總是會發生。 找不到從我從 main.py 導入的模塊導入的第二個模塊。
仍在尋找解決方案
from .module1 import Module1
如果您從文件夾中運行文件,python 將能夠從該文件夾中查找本地模塊。 您需要在項目的根目錄下調用它。
user/projects/package_name$ python -m src/modules/module2.py
使用以下內容在項目的根目錄中創建一個pyproject.toml
文件:
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "package_name"
version = "0.0.1"
requires-python = ">=3.7"
您的 package 需要遵循以下結構:
project_name/
└── src/
└── package_name/
├── __init__.py
└── example.py
要從項目的根目錄將其安裝在您的環境中:
user/projects/package_name$ pip install -e .
這樣,您就不必擔心 PYTHONPATH、workind 目錄、相對/絕對導入。 您只需使用您創建的預期路徑導入和使用 package,Python 將知道如何查看pip install
命令。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.