您的位置:首页 > 编程语言 > Python开发

python框架环境配置

2016-11-04 10:38 246 查看
        在自动化框架开发和调试运行过程中,我们经常会碰到各种各样的包路径调用的问题,一会儿找不到包了,一会儿包下方找不到方法了,等等,很麻烦。

        python的包调用,其实有一个很简单的办法,是把你想要添加的路径添加到python解释器的包搜索路径下,而其搜索路径就在python根路径下方的site-packages目录下,我们可以把所有要添加的路径写到一个.pth为扩展名的文件下,并把所有该文件复制到site-packages路径下就可以了,不需要的时候,我们只要去site-packages路径下把.pth文件删除即可。这样做既方便了自己扩展包的调用,也不会污染本地python环境。

        以下代码就是实现的把当前框架下所有目录添加在“$PYTHON_HOME/lib/site-packages”路径下的一个.pth文件中的代码。这个代码的作用,在当我把我的python框架代码拷贝到任何一个python环境中的时候,在运行框架或者项目之前先运行一下这个代码,那么环境即可自动配置完毕。框架或项目内的所有包之间的互相调用都可以准确运行。
        注意: 因为我的框架是在windows下运行,所以这里是写了一个bat文件把当前环境配置和框架启动调用写到一起了,所以,可以自主配置,无需分开操作。而因为windows和linux的目录结构不同,所以,代码并没有经过在linux下的测试,所以,linux编程系的小伙伴请注意,直接使用此代码可能会有问题。
        此代码可以看作本地测试框架的可移植性的一种尝试。现分享给大家,因代码和我的框架有关联,可能部分代码在大家使用过程中并不需要,大家可以自己尝试修改使用。更多的是想把这种想法分享给大家。代码仅供参考。

以下代码是2017/6/29日进行了一版优化,提高了通用性。

#coding=utf-8
import os
class pyPathConfig:
"""
方法用于获取当前框架的所有包路径并返回给createPthFile方法
方法中的walk()参数应该使用当前项目的根路径位置,可以指定绝对路径
为方便使用,当前写入的是获取当前路径,那么可以将此文件直接放到当前项目的根目录下即可
"""
def __catchAllPath(self):
rootList=[]
for root,dirs,files in os.walk(os.getcwd()):
if root.endswith("__pycache__")==True:
pass
else:
rootList.append(root.replace("\\","/"))
return rootList
"""
将包路径写到python/Lib/site-packages路径下的pth文件下,完成路径添加
方法接受一个非必出传字符串参数,即待生成的pth文件名,如果不传,则默认传入userEnvPath
"""
def createPthFile(self,pthFileName="userEnvPath"):
targetPath=((os.path.dirname(os.__file__)).replace("\\","/")+"/site-packages/"+pthFileName+".pth")
pthfile=open(targetPath,"w")
pathList=self.__catchAllPath()
for path in pathList:
print(path)
pthfile.write(path+"\n")
pthfile.close()
print("环境配置完毕!")

if __name__=="__main__":
pathObject=pyPathConfig()
pathObject.createPthFile()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息