我想知道如果该目录不是包,你是否可以从不是本地目录的目录中使用python中的import语句?此外,系统路径上的所有目录都必须是包吗?如果添加系统路径的相对路径,它相对于什么?
答案 0 :(得分:1)
您可以更改sys.path以获得您要求的所有结果。
是的,你可以。要添加不是本地目录的目录:
import sys
sys.path += '/your_path/your_subpath/' # absolute paths
import your_package
如果您需要从文件系统中的任意路径加载模块而不将其添加到sys.path,您也可以使用imp.load_module
系统路径上的所有目录都必须是包吗? 不,他们没有
如果您添加系统路径的相对路径,它相对于什么?
到包含用于调用Python解释器的脚本的目录。 不过,我建议以这种方式设置它:
import sys,os
sys.path.append(os.path.realpath('..'))
或从剧本的路径:
import sys,os
sys.path.append(os.path.realpath(os.path.join(os.path.dirname(sys.argv[0]), '..')))
这两个示例也可以从交互式shell中运行。这两个示例都确保相对路径符合您的意思,无论操作系统
另请参阅this post以获取有关python
答案 1 :(得分:0)
这真的是3个不同的问题:
我想知道如果该目录不是包,那么你是否可以从不是本地目录的目录中使用python中的import语句
是的,你可以。
另外,系统路径上的所有目录都必须是包吗?
不,他们没有。
如果添加系统路径的相对路径,它相对于什么?
相对于当前的工作目录。