我有一个脚本目录(假设为project/bin
),还有一个位于project/lib
的库文件,希望让脚本自动加载它。这是我通常在每个脚本顶部使用的代码:
#!/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平台,但它可以使事情更加清晰。