Python 项目级别的变量应该怎么做

2016-08-03 23:37:15 +08:00
 zeyexe
不使用数据库或文件,怎么实现项目范围级别的变量,可以让整个项目目录下不同文件和模块访问的变量。

具体来说是我想设置一个项目名,可以随时读取到这个值。
4418 次点击
所在节点    Python
19 条回复
virusdefender
2016-08-03 23:37:54 +08:00
环境变量
sweetpotato
2016-08-03 23:45:37 +08:00
比如模块 settings 然后 buildin ?
zeyexe
2016-08-03 23:49:49 +08:00
@sweetpotato 能不能解释下怎么操作?
sweetpotato
2016-08-04 00:00:36 +08:00
@zeyexe __builtin__.settings = settings 对于用户模块 settings 就可以直接 import settings 了,这方法不一定好😁
zeyexe
2016-08-04 00:04:24 +08:00
@sweetpotato 不走寻常路啊
liangmishi
2016-08-04 00:08:57 +08:00
我的想法是在项目的根目录下创建 config 文件 里面专门放这些变量,有哪个文件需要用就 from config import ...
cxbig
2016-08-04 00:12:46 +08:00
说到变量,那么改动有多频繁?如果是经常改动,放数据库;如果根据部署环境变,放.env 或其他 config 文件。
zeyexe
2016-08-04 00:13:07 +08:00
@liangmishi 我主要是想寻找一个最简便的方法。
chuhades
2016-08-04 00:20:37 +08:00
单例?
wqchen
2016-08-04 01:41:04 +08:00
.env 文件
abxialiang
2016-08-04 06:15:07 +08:00
cfg.py
v1=0
v2=1

b.py
import cfg
print cfg.v1

我就经常这么干
sweetpotato
2016-08-04 07:41:20 +08:00
@zeyexe 其实也没必要内置,一般导入就好
zhuangzhuang1988
2016-08-04 08:38:40 +08:00
参考 Django 的 config 就好。。
mengzhuo
2016-08-04 11:58:26 +08:00
必须环境变量啊
其他的都是歪门邪道
srlp
2016-08-04 16:28:40 +08:00
不使用配置文件,那就只有环境变量了
bravecarrot
2016-08-04 17:37:06 +08:00
为什么不放在 settings.py 里面?
zeyexe
2016-08-04 17:56:44 +08:00
@bravecarrot 很多地方都需要这个变量,但是我并不喜欢到处 import 。
ecloud
2016-08-04 23:49:33 +08:00
似乎现在没人用 Berkeley DB 了?
repus911
2016-08-05 11:09:28 +08:00
想用变量还不想到处 import...无米之炊啊 少年

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/296961

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX