Python导入和包:\ uuuu init\ uuuuu.py文件未修复ModuleNotFoundError?

2024-05-19 19:48:45 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我阅读了Packages文档,并在每个包和父包中包含了uuu init_uuuuu.py文件。我的目录是这样的

sparro
    __init__.py
    api
        __init__.py
        sparrolib.py
    schema
        __init__.py
        tsbuild.py
    scripts
        __init__.py
        scrape_descriptors.py
    utils
        __init__.py
        analytics.py
        engine.py
        utility.py

因此,我尝试使用

from sparro.utils import utility, engine

它失败并给我一个ModuleNotFoundError。我尝试了其他模块,我得到了同样的问题。我误解了什么?我该如何纠正

错误:

Traceback (most recent call last):
  File "/Users/dominictarro/Documents/Sparro/sparro/scripts/scrape_descriptors.py", line 2, in <module>
from sparro.utils import utility, engine
ModuleNotFoundError: No module name 'sparro'
[shell_cmd: python -u "/Users/dominictarro/Documents/Sparro/sparro/scripts/scrape_descriptors.py"]
[dir: /Users/dominictarro/Documents/Sparro/sparro/scripts]
[path: /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin]

Tags: pybininitusrscriptsutilsusersengine
1条回答
网友
1楼 · 发布于 2024-05-19 19:48:45

您需要将包的父目录添加到PYTHONPATH

在升华终端中运行以下命令:

export PYTHONPATH=$PYTHONPATH:/Users/dominictarro/Documents/Sparro/

要使其永久化,请研究如何为系统设置环境变量。如果您运行的是linux或macOS,那么您应该将该命令添加到.bashrc文件中(可能在这里/Users/dominictarro/.bashrc)

您还可以研究如何通过升华设置PYTHONPATH


或者,当您的工作目录为/Users/dominictarro/Documents/Sparro/

您可以在这里创建一个文件(按惯例称为main.py),该文件导入并调用库中的某些内容

例如

from sparro.scripts.scrape_descriptors import run

if __name__ == '__main__':
    run()

显然需要一个名为run的函数

相关问题 更多 >