- 问题:
(base) beauty@by521-7:~/Website-Fingerprinting-Library-master$ bash scripts/NetCLR.sh
Traceback (most recent call last):File "/home/beauty/Website-Fingerprinting-Library-master/exp/pretrain.py", line 8, in <module>from WFlib import models
ModuleNotFoundError: No module named 'WFlib'
Traceback (most recent call last):File "/home/beauty/Website-Fingerprinting-Library-master/exp/train.py", line 7, in <module>from WFlib import models
ModuleNotFoundError: No module named 'WFlib'
Traceback (most recent call last):File "/home/beauty/Website-Fingerprinting-Library-master/exp/test.py", line 9, in <module>from WFlib import models
ModuleNotFoundError: No module named 'WFlib'
相信很多人都会遇到这样的小问题啦,在新的环境中运行代码时会出现找不到包的情况;
- 原因:
运行的脚本文件在包的外部时,如果我们的包路径不在当前运行python的搜索路径中,就会出现找不到的情况,如果运行的脚本文件在包的内部的话,应该不会出现这样的情况,如下所示:
其中,红色框内为我运行的脚本所在目录,蓝色方框为我调用的脚本所在位置,显然它们两个是不在一个目录下面的,那么包的目录就要添加到当前的python搜索路径中才可以; - 解决:
执行export PYTHONPATH=$PYTHONPATH:/home/beauty/Website-Fingerprinting-Library-master/WFlib
将包所在的目录或者父目录添加到python搜索路径中,其中/home/beauty/Website-Fingerprinting-Library-master/WFlib
是包的搜索路径;