首先,Python 在导入模块时,会从以下位置查找模块:
- 当前目录
- PYTHONPATH 环境变量指定的目录
- 默认安装的库目录
在你的情况下,Python 在运行 SSDTTime.py 文件时,它在你的当前目录(也就是 D:\blackMac\SSDTTime)中找不到 Scripts 模块,因此引发了 ModuleNotFoundError。
解决方案有以下几种:
- 更改工作目录:你可以将你的工作目录更改为包含
Scripts 文件夹的目录。在 PowerShell 中,你可以使用 cd 命令来更改工作目录,例如:
cd D:\blackMac
然后,你可以在新的工作目录中运行你的 Python 脚本。
- 添加脚本的父目录到 PYTHONPATH:你也可以将你的脚本的父目录添加到 PYTHONPATH 环境变量中。这样,Python 将在该目录中查找模块。你可以在 PowerShell 中使用以下命令添加目录:
$env:PYTHONPATH = $env:PYTHONPATH + ";D:\blackMac"
然后,你可以在任何地方运行你的 Python 脚本,而无需更改工作目录。
- 更改模块导入语句:如果你的目标是将
Scripts 作为一个包来使用,那么你可能需要更改你的导入语句。如果 Scripts 是一个包,那么它应该包含一个 __init__.py 文件(即使它是空的)。然后,你可以使用以下语句导入包中的模块:
from Scripts import downloader, dsdt, plist, reveal, run, utils
如果 Scripts 不是一个包,而是一个包含多个 .py 文件的文件夹,那么你应该使用以下语句导入模块:
from Scripts.downloader import downloader
from Scripts.dsdt import dsdt
from Scripts.plist import plist
from Scripts.reveal import reveal
from Scripts.run import run
from Scripts.utils import utils
注意:Python 的模块导入机制依赖于文件系统结构。如果你的文件系统结构不符合 Python 的预期,那么可能会出现导入错误。
import Scripts会从 python 的 import path 里查找 module 。但是程序运行目录、脚本所在目录通常并不在 import path 中。所以就找不到了。可能的解决方案:
import之前,把 Scripts 的父目录加入sys.path列表中。PYTHONPATH环境变量,加入 Scripts 的父目录。import .Scripts