V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
zeyexe
V2EX  ›  Python

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

  •  
  •   zeyexe · 2016-08-03 23:37:15 +08:00 · 4639 次点击
    这是一个创建于 3037 天前的主题,其中的信息可能已经有所发展或是发生改变。
    不使用数据库或文件,怎么实现项目范围级别的变量,可以让整个项目目录下不同文件和模块访问的变量。

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

    b.py
    import cfg
    print cfg.v1

    我就经常这么干
    sweetpotato
        12
    sweetpotato  
       2016-08-04 07:41:20 +08:00 via Android   ❤️ 1
    @zeyexe 其实也没必要内置,一般导入就好
    zhuangzhuang1988
        13
    zhuangzhuang1988  
       2016-08-04 08:38:40 +08:00   ❤️ 1
    参考 Django 的 config 就好。。
    mengzhuo
        14
    mengzhuo  
       2016-08-04 11:58:26 +08:00 via iPhone   ❤️ 1
    必须环境变量啊
    其他的都是歪门邪道
    srlp
        15
    srlp  
       2016-08-04 16:28:40 +08:00 via iPhone   ❤️ 1
    不使用配置文件,那就只有环境变量了
    bravecarrot
        16
    bravecarrot  
       2016-08-04 17:37:06 +08:00 via iPhone   ❤️ 1
    为什么不放在 settings.py 里面?
    zeyexe
        17
    zeyexe  
    OP
       2016-08-04 17:56:44 +08:00
    @bravecarrot 很多地方都需要这个变量,但是我并不喜欢到处 import 。
    ecloud
        18
    ecloud  
       2016-08-04 23:49:33 +08:00   ❤️ 1
    似乎现在没人用 Berkeley DB 了?
    repus911
        19
    repus911  
       2016-08-05 11:09:28 +08:00   ❤️ 1
    想用变量还不想到处 import...无米之炊啊 少年
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3402 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 11:51 · PVG 19:51 · LAX 03:51 · JFK 06:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.