我有一个充满脚本的目录(假设project/bin)。我也有一个库project/lib,希望脚本自动加载它。这是我通常在每个脚本顶部使用的内容:
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平台,但可以保持干净。
如果您不想编辑每个文件
安装你的资料库像一个正常的Python libray 或
设置PYTHONPATH为您的lib
PYTHONPATH
lib
或者如果您愿意在每个文件中添加一行,则在顶部添加导入语句,例如
import import_my_lib
保持import_my_lib.py在bin中,import_my_lib可以正确地将python路径设置为lib您想要的任何内容
import_my_lib.py
import_my_lib