频繁地将项目所在目录导入到sys.path有什么好处与坏处?

图片描述

如图所示,几乎每个文件中都有这几行代码(个人认为不太优雅)

  1. 有什么好处? 坏处?

  2. 如果真的要像图中那么做,更加优雅点的方法是?

PS: 之所以把该整个项目的package导入到sys.path中,主要是因为「方便使用,如同导入标准库一样」

回答:

写一个config.py, 将引入环境变量的工作都放在里面.
然后, 其他的文件都import config. 其实跟你写个函数复用代码是一个意思.

这样做的好处是: 如果有一天你不想使用环境变量了, 你可以很方便的切换, 只修改config.py就好了, 而不用修改项目中的每个文件.

回答:

另一种做法是
在python的site-pcakages目录下创建一个pth文件,把PY_SRC目录放在里面,如:

#cat /usr/local/lib/python2.7/site-packages/my_project.pth 

/data/my_project

这样在这台服务器的任何目录下,都能直接import /data/my_project里面的包。

回答:

个人觉得,副作用更大些,虽然之前的这个代码已经尽量用一种优雅的方式使用自己定义的PY_SRC来做为环境变量了,看起来的唯一的好处就是对单个文件做单元测试的时候,不用频繁的操作sys.path,副作用就是交叉引用时,导致一堆的目录被引入到sys.path中,污染了全局的sys.path,更优雅一点的做法好歹是, 总体看来,还是副作用更大些

MY_PATH = "xxxx"

if My_PATH not in sys.path:

sys.path.append(MY_PATH)

以上是 频繁地将项目所在目录导入到sys.path有什么好处与坏处? 的全部内容, 来源链接: utcz.com/a/157687.html

回到顶部