【问题标题】:ModuleNotFoundError - Python3ModuleNotFoundError - Python3
【发布时间】:2020-11-17 15:34:45
【问题描述】:

Python 新手,在导入模块时遇到错误。我有以下结构(不确定这是否是显示文件夹结构的好方法):

  • 电子商务

    • 客户

      • __init__.py
      • contact.py
    • 购物

      • __init__.py
      • sales.py
  • __init__.py

我想在购物时将 contact.py 从 customer 导入到 sales.py,但出现:ModuleNotFoundError: No module named 'eccommerce'

我正在使用这个:

from ecommerce.customer import contact 在 sales.py 文件的开头。

有什么想法吗?

VSCode,MacOS 10.14.6

【问题讨论】:

    标签: python python-3.x import directory


    【解决方案1】:

    需要注意的一点是您当前的工作目录在哪里。如果您将 cwd 设置为电子商务,那么您应该能够使用您输入的语法访问联系人。

    我多次遇到这个问题,在 python 文档中,这个设置在技术上应该可以工作,init 文件被 python 解析器解析为单独的包,然后您可以访问这些包。似乎它不适用于标准的python解释器,我还没有找到答案。解决此问题的一种方法是按照@Sory 的建议,在包条目的开头添加环境变量的路径。虽然这是一种解决方法,但以后可能会导致问题。

    另一种选择是使用单独的 python 解释器,例如,我使用 Jupyter 的 IPython 解释器,它在此设置下运行得非常好。不过,这会给你另一个外部依赖。

    请确保当前工作目录设置为根文件夹,因为这通常是第一个问题。

    【讨论】:

      【解决方案2】:

      如果 'customer' 是 ecommerce.py 文件中的一个类,from ecommerce.customer import contact 会起作用,但在你的情况下,这些是不同的文件,所以它不起作用...

      正确的语法是: from customer import contact 但您需要调整这些文件。

      另一种方法是导入 os,导航到该电子商务文件夹,如下所示:os.getcwd('insert dir path here'),然后导入客户。

      【讨论】:

      • 感谢您的回复。如果我的电子商务是文件夹而不是 .py,这是否适用?电子商务、客户和购物都是没有 .py 扩展名的文件夹
      • 正如我所说,ecommerce.customer 仅在电子商务是 python 文件时才有效。不是目录。干杯
      猜你喜欢
      • 2021-12-17
      • 1970-01-01
      • 2020-10-23
      • 2019-01-26
      • 1970-01-01
      • 2022-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多