python 环境变量区分

文章介绍了在Python中如何设置和获取环境变量,推荐使用os.getenv提供默认值。还讲解了通过configparser模块进行配置读取,以及如何根据环境(dev,test,prod)选择不同的配置类。此外,文中也提到了Scrapy项目中利用环境变量区分配置的方式,包括SCRAPY_SETTINGS_MODULE和SCRAPY_PROJECT,并展示了如何在代码中使用settings。

python 环境变量区分

设置并获取环境变量

os.getenv os.environ

设置环境变量
1. 启动时设置
    PROFILE=test python3 main.py
2. linux export 导入环境变量
    export PROFILE=test
    
获取环境变量
1. os.getenv("PROFILE", "test")
2. os.environ["PROFILE"]
推荐第一种,提供默认值不会报错

通过配置模块configparser读取配置

安装

pip install configparser
  1. config类
class Config(object):
    PROFILE = "dev"
    MYSQL_URL = 'XXX'


class ProdConfig(Config):
    '''
    生产环境配置
    '''
    PROFILE = "prod"
    MYSQL_URL = 'XXX'


class TestingConfig(Config):
    '''
    测试环境配置
    '''
    PROFILE = "test"
    MYSQL_URL = 'XXX'

配置类获取配置

import configparser

if env == 'dev':
    app.config = config.DevelopmentConfig
elif env == 'test':
    app.config = config.TestingConfig
elif env == 'prod':
    app.config = config.ProdConfig
else:
    raise ValueError('Invalid environment')
  1. 配置文件
test_conf.json
prod_conf.json

配置文件获取配置类

import os
import configparser

try:
    CONFIG_PATH = os.environ['CONFIG_PATH']
except Exception:
    raise ValueError

config = configparser.ConfigParser()
config.read(CONFIG_PATH)

scrapy 环境变量配置

scrapy 支持环境变量区分环境,有两种配置方式:1. SCRAPY_SETTINGS_MODULE(默认settings), 2.SCRAPY_PROJECT

scrapy 环境区分: scrapy 会读取环境变量 SCRAPY_PROJECT ,若没有缺省值default

  1. 新建settings.py文件,test_settings.py;
  2. scrapy.cfg [settings] 中添加新增的settings.py文件名,test=[projectname].test_settings
 [settings]                                                                               
 default = projectname.settings                                                                
 test = projectname.settings 
 
 prod = projectname.settings 
  1. export SCRAPY_PROJECT=test;
  2. scrapy crawl spidername

代码中直接使用 settings

from scrapy.utils.project import get_project_settings

# 字典用法
settings = get_project_settings()

通过钩子获取 settings

@classmethod
def from_settings(cls, settings):
    # 获取settings
    settings['test']
### 配置和使用 Python 环境变量 为了能够在命令行或其他工具中方便地调用 Python 解释器,通常需要将其路径添加到系统的环境变量 `PATH` 中。以下是关于如何配置和使用 Python 环境变量的具体说明。 #### 手动配置 Python 环境变量 如果没有在安装过程中自动将 Python 添加到系统环境变量,则可以按照以下步骤手动完成: 1. **打开系统属性窗口** 右键单击“此电脑”或“我的电脑”,选择“属性”。随后进入“高级系统设置”。 2. **编辑环境变量** 在弹出的对话框中找到“环境变量”按钮并点击它。这会显示当前用户的环境变量列表以及系统级别的环境变量列表。 3. **修改 PATH 变量** 在用户变量或系统变量部分寻找名为 `Path` 的条目,并双击以编辑其值。如果不存在该条目,则可以选择新建一个名称为 `Path` 的变量[^1]。 4. **追加 Python 路径** 将 Python 安装目录及其 Scripts 子文件夹路径添加至 `Path` 值中。例如,假设 Python 安装于 `C:\Python39\` ,那么应分别输入这两个位置: - `C:\Python39\` - `C:\Python39\Scripts\` 5. **保存更改** 点击确认所有对话框关闭它们之后重启任何已开启的终端实例来使新设定生效[^2]。 #### 使用多个版本的 Python 并管理冲突 当计算机上存在不同版本的 Python (比如同时有 Python 2 和 Python 3),可以通过调整顺序或者利用特定前缀名的方法解决潜在执行优先级问题: - **通过排列次序控制默认行为**: 把较常使用的那个解释程序所在的位置放在前面即可让操作系统先查找这个版本。 - **指定启动参数区分运行版别**: 创建批处理脚本(.bat) 或者定义 alias 来明确指出每次要加载哪个可实行档, 如 `py -2 script.py`, 这样即使两个都存在于 path 下也不会混淆[^4]. 另外对于多版本共存情况下的更优雅解决方案还包括采用虚拟环境技术(virtualenv), 不过这里讨论范围限定基础层面操作. ```bash # 测试是否成功设置了环境变量 python --version ``` 上述命令应当返回所期望看到的那个 python 版本号信息; 若果不正确可能是因为还有其他地方也设定了类似的全局变量影响到了最终解析结果. ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值