我有一个充满脚本的目录(比如project/bin
)。我还有一个位于project/lib
的库,并希望脚本自动加载它。这是我在每个脚本的顶部通常使用:Python:相对于当前正在运行的脚本添加到sys.path的最佳方式
#!/usr/bin/python
from os.path import dirname, realpath, sep, pardir
import sys
sys.path.append(dirname(realpath(__file__)) + sep + pardir + sep + "lib")
# ... now the real code
import mylib
这是种累赘,丑陋,并且在每一个文件的开头要粘贴。有一个更好的方法吗?
真的就是我希望的是光滑如这样的:
#!/usr/bin/python
import sys.path
from os.path import pardir, sep
sys.path.append_relative(pardir + sep + "lib")
import mylib
甚至更好,东西时,我的编辑器(或其他人谁拥有提交权限)决定重新排序,不会破进口作为其清理过程的一部分:
#!/usr/bin/python --relpath_append ../lib
import mylib
那不会直接移植到非POSIX平台,但它会保持干净。
参见:http://stackoverflow.com/questions/2349991/python-how-to-import-other-python-files/20749411#20749411 – dreftymac 2016-05-18 22:15:59