为了好玩或方便,自己写了python的模块,并且想让其他的模块看到,这就需要将自己模块所在的路径添加到当前python 的sys.path中,这样才能被import进来。
一般的解决方案有添加相应的路径到PYTHONPATH这个环境变量中来。这个环境变量对系统安装下的python确实有效。
但往往我们也有特殊的需求,比如自建了一个python的运行环境,或者第三方整的开发环境嵌入了python的所有运行环境,这时,没有主动去读取这个环境变量,这种方案就不行了。
在sys.path初始化的过程中,还有一个Lib/site_packages目录可以放入一个**"*.pth"**文件,在文件里添加上相应的路径,就可以了。
#Sample Code
import sys, os
def addSysPath():
sitepkg_name = "site-packages"
pkg_path = ""
for path in sys.path :
pos = path.find(sitepkg_name)
if (pos >= 0 and path[pos:] == sitepkg_name) :
pkg_path = path
break
if pkg_path != "" :
filename = os.path.join(pkg_path, "mypackage.pth")
f = open(filename, "w")
f.writelines("D:\\mypackagepath")
f.close()
print("Add path successfully!")
else :
print("Error")
if __name__ == "__main__" :
addSysPath()