python - 频繁地将项目所在目录导入到sys.path有什么好处与坏处?
迷茫
迷茫 2017-04-17 17:39:08
[Python讨论组]

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

  1. 有什么好处? 坏处?

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

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

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(3)
巴扎黑

写一个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)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号