虚拟env命令执行器的简单封装,通过配置文件传递环境变量。
项目描述
虚拟env命令执行器的简单封装,通过配置文件传递环境变量。
用例
假设你部署了一个名为“example.com”的Django网站。你遵循所有最佳实践,并将其作为Python包部署,在/usr/share/python/example-com(类似于dh_virtualenv所做的那样)的隔离虚拟env中安装。
配置从Django设置中的环境变量读取。
当你想在服务器上运行Django管理命令时,你会输入
ENV_VAR_1=value ENV_VAR_2=other … /usr/share/python/example-com/bin/django-admin <command>
你可以使用envdir或bash的source命令来公开你的环境变量,但Env-cmd使这更加简单。它允许你通过在setup.py中添加setuptools入口点来读取配置文件、公开环境变量并运行命令。将入口点符号链接到/usr/bin,你的命令变为
example-com django-admin <command>
Env-cmd
使用默认位置提供的配置文件或覆盖。
将配置值作为环境变量公开。
解析你的虚拟env的路径。
将命令传递给虚拟env命令。
安装
pip install env-cmd
使用方法
在<yourproject>/cli.py
import env_cmd
read_environ = env_cmd.read_environ(
'PRCONFIG', # name of the env var that allows overriding of the
# config path.
'/etc/yourproject.conf', # default config path.
{'SOME_ENV_VARIABLE': 'DEFAULT_VALUE', # Some default environment
'OTHER_VARIABLE': 'OTHER VALUE'}, # variables.
)
main = env_cmd.main(read_environ)
在你的setup.py
setup(
…
entry_points={'console_scripts': ['yourproject=yourproject.cli:main']},
)
然后将/path/to/virtualenv/bin/yourproject符号链接到/usr/bin/yourproject。
你可以使用以下命令从虚拟env中运行命令
yourproject <command>
使用以下命令覆盖默认配置路径
PRCONFIG=/path/to/config.conf yourproject <command>
配置语法如下
KEY=value OTHER=some other value QUOTED="quotes are stripped." ALSO='single quotes too' WHITESPACE= is stripped as well. # comments work like this # empty lines are skipped
如果你使用Gunicorn运行Web服务器,可以使用on_reload钩子在服务器重新加载时读取配置,允许零停机配置更新
# gunicorn.conf.py
import os
from yourproject import read_environ
def on_reload(server):
server.log.info("Reading environ")
os.environ = read_environ()
server.log.info(os.environ)
项目详情
下载文件
下载适用于您平台文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
env-cmd-1.1.tar.gz (4.1 kB 查看哈希值)
构建分布
env_cmd-1.1-py2.py3-none-any.whl (3.1 kB 查看哈希值)
关闭
env-cmd-1.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c94f2d3ca10d65bf0d3104154a7d5ac13abbae0aa3247847537a1af58ff33f21 |
|
MD5 | fdebcfdf8c286c04705f224e9b5055b8 |
|
BLAKE2b-256 | e32790ff01179657e80f404418347c245880364858dedaa8d43f436d7d2d42e9 |
关闭
env_cmd-1.1-py2.py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 628a061097bc9054955eac3e8bdaeb7399e5ffaa9997f9cac73532c61cedaf85 |
|
MD5 | a7caa929cb5465af5517746f0e5e9277 |
|
BLAKE2b-256 | 085e37eba25ca32befe998230c6bc661e3c67ca57b6db464a9e6ec3eb56d64bb |