当前位置: 首页 > 知识库问答 >
问题:

python3模块导入错误,找不到模块:ModuleNotFoundError: No module named 'Scripts'?

艾文斌
2024-02-11

我的文件目录是这样的:
Snipaste_2024-02-11_17-23-36.png

SSDTTime.py文件的首行是引入Scripts文件夹里面的文件,是这样写的:

from Scripts import downloader, dsdt, plist, reveal, run, utils//...

Scripts文件夹里面是这样的:
Snipaste_2024-02-11_17-24-13.png

我在powershell里面运行SSDTTime.py文件,出现如下错误,找不到Scripts模块:

PS D:\blackMac\SSDTTime> python SSDTTime.pyTraceback (most recent call last):  File "D:\blackMac\SSDTTime\SSDTTime.py", line 1, in <module>    from Scripts import downloader, dsdt, plist, reveal, run, utilsModuleNotFoundError: No module named 'Scripts'

大佬帮解释一下怎么回事。

共有1个答案

东方新霁
2024-02-11

首先,Python 在导入模块时,会从以下位置查找模块:

  1. 当前目录
  2. PYTHONPATH 环境变量指定的目录
  3. 默认安装的库目录

在你的情况下,Python 在运行 SSDTTime.py 文件时,它在你的当前目录(也就是 D:\blackMac\SSDTTime)中找不到 Scripts 模块,因此引发了 ModuleNotFoundError

解决方案有以下几种:

  1. 更改工作目录:你可以将你的工作目录更改为包含 Scripts 文件夹的目录。在 PowerShell 中,你可以使用 cd 命令来更改工作目录,例如:
cd D:\blackMac

然后,你可以在新的工作目录中运行你的 Python 脚本。

  1. 添加脚本的父目录到 PYTHONPATH:你也可以将你的脚本的父目录添加到 PYTHONPATH 环境变量中。这样,Python 将在该目录中查找模块。你可以在 PowerShell 中使用以下命令添加目录:
$env:PYTHONPATH = $env:PYTHONPATH + ";D:\blackMac"

然后,你可以在任何地方运行你的 Python 脚本,而无需更改工作目录。

  1. 更改模块导入语句:如果你的目标是将 Scripts 作为一个包来使用,那么你可能需要更改你的导入语句。如果 Scripts 是一个包,那么它应该包含一个 __init__.py 文件(即使它是空的)。然后,你可以使用以下语句导入包中的模块:
from Scripts import downloader, dsdt, plist, reveal, run, utils

如果 Scripts 不是一个包,而是一个包含多个 .py 文件的文件夹,那么你应该使用以下语句导入模块:

from Scripts.downloader import downloaderfrom Scripts.dsdt import dsdtfrom Scripts.plist import plistfrom Scripts.reveal import revealfrom Scripts.run import runfrom Scripts.utils import utils

注意:Python 的模块导入机制依赖于文件系统结构。如果你的文件系统结构不符合 Python 的预期,那么可能会出现导入错误。

 类似资料:
  • 问题内容: 我已经很长时间没有使用Node.js了,也从未使用过express。当我启动应用程序时,它刚刚返回: 启动test.html时发生错误。这是代码: 我自己的路 : 为什么呢 编辑: 这是我的新app.configure: 但它返回: 问题答案: 我假设test.html是一个静态文件。要渲染静态文件,请像这样使用静态中间件。 这告诉express在应用程序的公共目录中查找静态文件。 指

  • 我刚刚开始使用webpack,很难获得多入口点示例来构建。网页包。配置。示例中的js文件包括以下行 这对我来说是个错误 在四处搜索时,我找到了将CommonChunkPlugin与表达式一起使用的其他示例 失败并出现错误 进一步搜索发现了许多示例,包括 我的构建现在失败了 我不知道该如何进行。

  • 当运行我的项目包时,我有上面的标题错误,在我试图使用 npm安装xml2json 但是,我只有以下错误,你能给我建议或想法,从这个问题中走出来吗... 编辑:: 1 在我安装了更新的Visual Studio 2005到2012后,当我运行npm安装xml2json和npm安装xml2json--unsece-perm时,我得到下面的错误, 提前感谢,戈帕尔·R

  • 运行command:时,出现以下错误: 错误输出:module.js:339 throw err;^错误:在Function.module._resolveFileName(module.js:337:15)在Function.module._load(module.js:287:25)在module.require(module.js:366:17)在require(module.js:385:

  • 问题内容: 我正在尝试在Mac OSX Lion上设置Node。一切似乎都正常,但是我似乎无法从全局模块文件夹中导入任何模块。我得到了错误 如果我运行this :,得到的响应是: 没错,我的模块确实安装在/ usr / local / lib / node_modules中。但是,当我尝试运行脚本时,却得到以下信息: 我的.bash_profile看起来像这样: 非常感谢您的帮助,我不知道为什么不

  • 我是PyCharm的新手,很难将我编写的模块导入Python控制台。如果我尝试导入Python自带的模块,我可以毫无困难地导入该模块,但是如果我尝试导入我编写的模块,我会得到一个导入错误:没有名为“ModuleITriedToImportName”的模块。例如,这里有一个简单的自我编写的模块pickle文件称为“文件pickle”: 如果我尝试在PyCharm Python控制台上“导入pickl

  • 问题内容: 我正在使用Babel和Webpack开发一个React应用,我想使用npm中的软件包。我已经安装了该软件包并将其保存为项目的依赖项。运行npm start后,出现此错误: ./~/file-exists/index.js中的错误找不到 模块:错误:无法在C:\ GitHub \ CryptoPrices \ node_modules \ file-exists @ ./~/file-e

  • 我试图找到此错误的任何解决方案,但没有任何对我有用。我有一个简单的Angular2应用程序,使用Angulal-CLI创建。当我在浏览器中提供此应用程序时,我收到此错误:我正在尝试在加载中使用不同的路径儿童: 文件夹 应用程序模块 app-routing.module.ts test.module.ts 堆栈跟踪