我想知道如果该目录不是包,是否可以从不是本地目录的目录中使用 python 中的 import 语句?另外,系统路径上的所有目录都必须是包吗?如果在系统路径中添加相对路径,它与什么相关?
问问题
127 次
2 回答
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。无论操作系统如何,这两个示例都确保相对路径是您的意思
有关 python 中相对路径的更多详细信息,另请参阅这篇文章
于 2013-01-27T21:16:44.707 回答
0
这真的是3个不同的问题:
我想知道如果该目录不是包,您是否可以从不是本地目录的目录中使用 python 中的 import 语句
是的你可以。
另外,系统路径上的所有目录都必须是包吗?
不,他们没有。
如果在系统路径中添加相对路径,它与什么相关?
相对于当前工作目录。
于 2013-01-27T21:15:16.957 回答