频繁地将项目所在目录导入到sys.path有什么好处与坏处?
如图所示,几乎每个文件中都有这几行代码(个人认为不太优雅)
有什么好处? 坏处?
如果真的要像图中那么做,更加优雅点的方法是?
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