解决 Flask 项目无法用 .env 文件中解析的参数设置环境变量的错误

2023-05-16

在 Windows 上启动 Flask 项目时,工作目录有 UTF-8 编码的 .env 文件,里面配置的环境变量在 Python2 中识别为 Unicode 类型,导致下述错误:


 * Serving Flask app "bootstrap" (lazy loading)
 * Environment: development
 * Debug mode: on
 * Restarting with stat
Traceback (most recent call last):
  File "bootstrap.py", line 40, in <module>
    app.run(host=str(settings.DEV_HOST), port=settings.DEV_PORT)
  File "D:\Python27\lib\site-packages\flask\app.py", line 943, in run
    run_simple(host, port, self, **options)
  File "D:\Python27\lib\site-packages\werkzeug\serving.py", line 812, in run_simple
    reloader_type)
  File "D:\Python27\lib\site-packages\werkzeug\_reloader.py", line 275, in run_with_reloader
    sys.exit(reloader.restart_with_reloader())
  File "D:\Python27\lib\site-packages\werkzeug\_reloader.py", line 132, in restart_with_reloader
    close_fds=False)
  File "D:\Python27\lib\subprocess.py", line 172, in call
    return Popen(*popenargs, **kwargs).wait()
  File "D:\Python27\lib\subprocess.py", line 394, in __init__
    errread, errwrite)
  File "D:\Python27\lib\subprocess.py", line 644, in _execute_child
    startupinfo)
TypeError: environment can only contain strings  

遇到这种情况,只需对 werkzeug 项目做个小的修改即可。Diff 文件如下所示:


diff --git a/werkzeug/_reloader.backup.py b/werkzeug/_reloader.py
# index 0d23dba..2698040 100644
# --- a/_reloader.backup.py
# +++ b/_reloader.py
# @@ -117,16 +117,20 @@ class ReloaderLoop(object):
#          while 1:
#              _log('info', ' * Restarting with %s' % self.name)
#              args = _get_args_for_reloading()
# -            new_environ = os.environ.copy()
# -            new_environ['WERKZEUG_RUN_MAIN'] = 'true'
# +            old_environ = os.environ.copy()
# +            new_environ = {
# +                'WERKZEUG_RUN_MAIN': 'true'
# +            }
# 
#              # a weird bug on windows. sometimes unicode strings end up in the
#              # environment and subprocess.call does not like this, encode them
#              # to latin1 and continue.
#              if os.name == 'nt' and PY2:
# -                for key, value in iteritems(new_environ):
# +                for key, value in iteritems(old_environ):
#                      if isinstance(value, text_type):
# -                        new_environ[key] = value.encode('iso-8859-1')
# +                        new_environ[key.encode('iso-8859-1')] = value.encode('iso-8859-1')
# +                    else:
# +                        new_environ[key] = value
# 
#              exit_code = subprocess.call(args, env=new_environ,
#                                          close_fds=False)
  

  

转载于:https://www.cnblogs.com/shishaochen/p/10014818.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解决 Flask 项目无法用 .env 文件中解析的参数设置环境变量的错误 的相关文章

随机推荐

  • 工信部划分数据中心规模等级

    C114讯 2013年1月14日上午消息 为落实 国务院关于加快培育和发展战略性新兴产业的决定 xff0c 满足社会 信息化 水平不断提高的要求 xff0c 促进我国数据中心 xff0c 特别是大型数据中心的合理布局和健康发展 xff0c
  • VS2010 error RC2135: file not found

    VS2010 C 43 43 win32 DLL 工程 xff0c 添加 rc 文件 xff0c 编辑 String Table 默认情况下英文版本的 rc 文件能够顺序编译通过 xff0c 为了让工程支持多语言 xff0c 将字符串修改为
  • mavlink协议移植问题

    mavlink协议移植问题 mavlink源代码是一个代码库 xff0c 使用的时候只需要将mavlink h头文件包含到工程项目中即可 mavlink通信协议是无状态的连接 xff0c 一般采用心跳消息跟踪系统是否存在 请确保每60 30
  • 光流传感器 定位精度_光流传感器其它方面的应用

    光流传感器可以通过在一定的时间内拍摄两张不同的照片 进而计算出物体运动的速度 光流是一种简单实用的图像运动表达方式 通常定义为一个图像序列中的图像亮度模式的表观运动 光流法检测运动物体的基本原理是 xff1a 给图像的每一个像素点赋予一个速
  • 6.28-机器人模拟器Gazebo基础

    gazebo基础学习 前言 在算法人员开发出可以真机使用的算法之前进行仿真学习机器人物理仿真器的基本使用 xff0c 包括创建场景 xff0c 制作ROS控制接口等 目录 gazebo基础学习 前言 目录 参考 学习记录 基础 安装gaze
  • Poco C++库网络模块例子解析2-------HttpServer

    下面程序取自 Poco 库的Net模块例子 HTTPServer 下面开始解析代码 include 34 Poco Net HTTPServer h 34 继承自TCPServer 实现了一个完整的HTTP多线程服务器 include 34
  • 【0928 | Day 39】事务(精讲)

    目录 一 事务 1 mysql如何控制事务 xff1f 2 默认事务开启的作用是什么 xff1f 3 事务的其他打开方式 xff1f 二 事物的四大特性 一 事务 在mysql中 xff0c 事务其实是一个最小的不可分割的工作单元 xff0
  • Unity项目 - DeathtrapDungeon死亡地牢

    目录 游戏原型项目演示绘图资源代码实现注意事项技术探讨参考来源 游戏原型 死亡地牢是一款 2D Roguelike 的地牢冒险游戏 手握利刃 xff0c 斩杀怪物 xff0c 在凶险的地牢内生存下去 但注意 xff0c 敌人也并非善茬 xf
  • Unity - 存读档机制简析

    本文旨在于简要分析Unity中的两种存档机制 xff0c 即 xff1a PlayerPrefs数据持久化方法及Serialization数据序列化方法 较比于源项目 xff0c 我另加了JSON方法 XML方法等及一些Unity设置 xf
  • Windows 无法安装到所选位置。错误:0x80300001

    Windows 无法安装到所选位置 错误 xff1a 0x80300001 这里遇到的情况是这样的 xff0c iDrac安装windows 2008 R2 xff0c 一开始映射 windows 2008 R2系统镜像 xff0c 后来
  • 【udacity】机器学习-2模型验证

    Evernote Export 1 模型的评估与验证简介 机器学习通常是大量传入数据 xff0c 然后会有一些关于数据的决策 想法和摘要 2 模型评估 评估模型使用的是各种数据分析的方法 xff0c 至少需要使用python编程和一些统计学
  • C++编程(五)--- Cmake详解&Makefile详解

    C C 43 43 程序员肯定离不开Makefile和Cmake xff0c 因为如果对这两个工具不熟悉 xff0c 那么你就不是一个合格的C C 43 43 程序员 本文对Makefile和Cmake xff0c 及它们的使用进行了详细的
  • 【统计学】第四章

    Evernote Export 一组数据的分布特征可以从那几个方面进行测度 xff1f 数据的分布特征可以从三个方面进行测度和描述 xff0c 一是分布的集中趋势 xff0c 反映各数据向其中心值靠拢或聚集的程度 xff1b 二是分布的离散
  • UG NX安装包大集合(包括UG目前发布的所有版本)

    UG NX安装包大集合 xff08 包括UG目前发布的所有版本 xff09 UG爱好者官方交流群 216953883 有了这个你就不怕找UG安装包麻烦了 xff0c 现在所有安装包全在这里了 所有版本的补丁包也在年后陆续更新 提醒 xff1
  • HTML常用字体代码

    HTML常用字体代码 常用字体 lt FONT style 61 34 FONT SIZE 40pt FILTER shadow color 61 green WIDTH 100 COLOR white LINE HEIGHT 150 FO
  • 线性链式存储结构c语言建立,线性表的链式存储结构(C语言版)

    上一篇博文我对数据结构中线性表的顺序存储结构顺序表 http 12172969 blog 51cto com 12162969 1916336 按照我的理解做了总结 xff0c 今天我继续对顺序表的另一种存储结构 xff0c 链表谈一下我看
  • stract oracle,ORACLE 字符串聚合函数 strCat

    源码如下 xff1a create or replace type strcat type as object currentstr varchar2 4000 currentseprator varchar2 8 static funct
  • ARM存储格式之 大端小端

    开头讲个有关大端小端的故事 xff1a 端模式 xff08 Endian xff09 的这个词出自Jonathan Swift书写的 格列佛游记 这本书根据将鸡蛋敲开的方法不同将所有的人分为两类 xff0c 从圆头开始将鸡蛋敲开的人被归为B
  • 多版本opencv管理; find_package()的原理解析

    近期用cmake编译程序时 xff0c 报错找不到opencv2 由于我电脑里安装了多个版本的opencv xff0c 管理不善 xff0c 借此机会梳理一下思路 1 Cmake find package Opencv REQUIRED x
  • 解决 Flask 项目无法用 .env 文件中解析的参数设置环境变量的错误

    在 Windows 上启动 Flask 项目时 xff0c 工作目录有 UTF 8 编码的 env 文件 xff0c 里面配置的环境变量在 Python2 中识别为 Unicode 类型 xff0c 导致下述错误 xff1a Serving