我也检查了SO上的其他答案,但它们似乎与我的不同。
因此,我正在尝试导入,并决定将我的模块custom.py
放入一个嵌套文件夹中,如下所示:/Users/alex/Desktop/Learn/mods/onemore/custom.py
我的主脚本文件位于以下位置:/Users/alex/Desktop/Learn/main.py
所以当我在main.py
中执行import custom
时,我会得到错误ModuleNotFoundError: No module named 'custom'
尽管/Users/alex/Desktop/Learn/mods/onemore
在PYTHONPATH
:中
> echo $PYTHONPATH
> /Users/alex/Desktop/Learn/mods/onemore
并且该路径在sys.path
(第二个(中也是可见的:
> ['', '/Users/alex/Desktop/Learn/mods/onemore', '/Library/Frameworks/Python.framework/Versions/3.10/lib/python310.zip', '/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10', '/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages']
为什么我仍然不能导入模块?
您可以使用文件夹名称导入它例如:from onemore import custom
您需要在/Users/alex/Desktop/Learn/mods/onemore
处添加一个空的__init__.py
文件,以便以这种方式调用(作为常规包(。
否则,如果它在python路径中,则将其称为命名空间包(不需要init(:
from custom import <func-you-need>
目前进口标准为PEP420。