Struggling to append a relative path to my sys.path
所以有很多类似的问题,但没有一个答案能满足我的要求。
实际上,我正在使用命令行中的绝对目录运行python脚本。在这个文件本身中,我想导入一个模块/文件,我目前使用一个绝对路径(
我该怎么做?
下面的两种备选方案适用于Python版本2和3。选择你喜欢的方式。涵盖了所有用例。
例11 2 | main script: /some/path/foo/foo.py module to import: /some/path/foo/bar/sub/dir/mymodule.py |
添加EDOCX1[0]
1 2 3 | import sys, os sys.path.append(os.path.join(sys.path[0],'bar','sub','dir')) from mymodule import MyModule |
例2
1 2 | main script: /some/path/work/foo/foo.py module to import: /some/path/work/bar/mymodule.py |
添加EDOCX1[0]
1 2 3 | import sys, os sys.path.append(os.path.join(os.path.dirname(sys.path[0]),'bar')) from mymodule import MyModule |
解释
- 在这两个例子中,
sys.path[0] 都是/some/path/foo 。 os.path.join('a','b','c') 比'a/b/c' 更轻便。os.path.dirname(mydir) 比os.path.join(mydir,'..') 更轻便。
也见
有关导入模块的文档:
- 在Python 2中
- 在Python 3中
好吧,我已经找到了怎么做的方法。
如何使用python查找脚本的目录?
提供答案