在为自己的crifanLib的python写demo
尝试去导入父级目录中的crifanFile
然后试了试:..
1 | from ..crifanFile import getFileFolderSize, formatSize |
好像可以支持:

但是运行失败:
1 2 3 | 发生异常: ValueError attempted relative import beyond top - level package File "/Users/crifan/dev/dev_root/crifan/CrifanLib/crifanLib/python/crifanLib/demo/crifanFileDemo.1.py" , line 1 , in <module> from ..crifanFile import getFileFolderSize, formatSize |

所以去搜:
python import parent directory
和:
去试试:…


1 | from ...crifanLib import crifanFile |
结果:
问题依旧:

1 | from ... import crifanFile |
结果:问题依旧。
看到别人提示了:
“Relative imports (as in from .. import mymodule) only work in a package. ”
python – Import file from parent directory? – Stack Overflow
用:
1 2 3 4 5 6 7 8 9 10 11 12 | import sys import os curFolder = os.path.abspath(__file__) parentFolder = os.path.dirname(curFolder) parentParentFolder = os.path.dirname(parentFolder) parentParentParentFolder = os.path.dirname(parentParentFolder) sys.path.append(curFolder) sys.path.append(parentFolder) sys.path.append(parentParentFolder) sys.path.append(parentParentParentFolder) from crifanFile import getFileFolderSize, formatSize |
是可以的:

看到google的动态提示:

所以再去搜:
python 3 import from parent directory
【总结】
在:
/Users/crifan/dev/dev_root/crifan/CrifanLib/crifanLib/python/crifanLib/demo/crifanFileDemo.1.py
最后用:
1 2 3 4 5 6 7 8 9 10 11 12 | import sys import os curFolder = os.path.abspath(__file__) parentFolder = os.path.dirname(curFolder) parentParentFolder = os.path.dirname(parentFolder) parentParentParentFolder = os.path.dirname(parentParentFolder) sys.path.append(curFolder) sys.path.append(parentFolder) sys.path.append(parentParentFolder) sys.path.append(parentParentParentFolder) from crifanFile import getFileFolderSize, formatSize |
可以导入:
/Users/crifan/dev/dev_root/crifan/CrifanLib/crifanLib/python/crifanLib
下面的:
/Users/crifan/dev/dev_root/crifan/CrifanLib/crifanLib/python/crifanLib/crifanFile.py
然后就可以继续测试了。
注:
实际情况中,一般只需要parentFolder就够了
此处之所以继续导入parentParentFolder、parentParentParentFolder是因为此处的crifanFile内容导入了别的库,其所在路径是父级的父级,父级的父级的父级 的路径。
转载请注明:在路上 » 【已解决】Python导入父级目录中的模块