簡體   English   中英

運行腳本時出現 ModuleNotFoundError 錯誤

[英]ModuleNotFoundError error when running script

我檢查了許多以前提出的問題,但我找不到解決問題的方法。

我在根目錄的終端上運行python3 folder1/script1.py命令,但出現錯誤ModuleNotFoundError: No module named 'folder2' 我將__ init __.py添加到文件夾中,但仍然找不到解決方案。

我的項目目錄是這樣的:

└── root
    ├── folder1
    │   ├── script1.py
    │   
    └── folder2
        ├── module1.py

模塊1.py:

def say_hello():
    print('hello')

scipt1.py:

from folder2 import module1

module1.say_hello()

在此處輸入圖像描述

一般需要安裝 python 模塊才能找到 python 模塊。 一個附帶規則是 python 將查看腳本的路徑以查看模塊是否存在。 script1.py下移一級,確保你有一個__init__.py並且它會工作。

└── root
    ├── script1.py
    │   
    └── folder2
        ├── __init__.py
        ├── module1.py

您還可以讓script1.py將其祖父目錄插入sys.path 但真正解決問題的最佳方法是通過添加 setup.py 使 package 可安裝。 一個極其原始的版本是

import setuptools

setuptools.setup(
    name="Foobar",
    packages=setuptools.find_packages(),
    scripts=["folder1/script1.py"]
)

你的目錄可以是

└── root
    ├── setup.py
    ├── folder1
    │   ├── script1.py
    │   
    └── folder2
        ├── __init__.py
        ├── module1.py

現在您可以執行python setup.py develop從開發目錄運行腳本。 python setup.py install (通常在您創建的 venv 中)使其成為標准安裝。

雙下划線 init 的正確用法;

__init__ 

我將 _ init _.py 添加到文件夾中,但仍然找不到解決方案。

你只用一個寫 init 。

暫無
暫無

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

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