【问题标题】:Moved a script into a directory, imports now failing将脚本移动到目录中,现在导入失败
【发布时间】:2018-12-12 23:50:38
【问题描述】:

我正在使用 Visual Studio Code。我有一个可以运行的 python 脚本,但我意识到我想让它成为一个类供其他脚本使用。这些文件的结构如下:

pha
   libclass.py
   __init.py__
myScript.py

而且效果很好。 myScript.py 导入 pha.libclass 没有问题。想将myScript.py 添加到我的库中,我将其移至pha 文件夹中

pha
    libclass.py
    __init.py__
    myScript.py

当我现在尝试运行它时,from pha.libclass import * 调用会导致错误:

Exception has occurred: ModuleNotFoundError
No Module named 'pha'

我错过了什么吗?

【问题讨论】:

  • 你试过重启VSC吗?
  • 要使 pha 成为一个包,它需要一个名为 __init__.py 的文件
  • @PariBaker 我有。没有运气。
  • @PeterWood 有一个。
  • @beezle 不是,如果它被称为 __init.py__ 它不会。

标签: python python-3.x visual-studio-code


【解决方案1】:

python 找不到模块 pha,您需要在 myScript.py 中将 import 语句更改为 import libclass / from libclass import *,因为这两个脚本现在并排在同一目录下

【讨论】:

  • 对...所以问题是,我把问题简单化了。我在pha.ps.sbpro(三个嵌套目录)中有一个脚本,libclass 导入。一旦我做出您建议的更改,这些导入就会中断。我宁愿不开始更改任何这些导入,因为在根级别有更多脚本使用整个库。我不应该在所有不同级别的包结构中运行脚本吗?
  • @beezle:不,你不是。
  • @beezle 为什么我的回答被否决了?我认为它解决了您在此处发布的问题(对不起,如果您过于简单化了)。请尝试更正您的问题。
  • @beezle:我建议的更改只是在 myScript.py 中。您可以只发布您正在处理的所有代码和文件/目录吗?
  • @beezle 您会尽快更新您的问题并删除过度简化的内容吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-29
相关资源
最近更新 更多