wfastcgi导入cx_Oracle失败,但`python -c“import cx_Oracle”成功

时间:2017-04-25 08:35:39

标签: python iis flask cx-oracle wfastcgi

我使用fastCGI进行IIS设置,为烧瓶应用程序提供服务。到现在为止还挺好。接下来我要添加一些数据库连接,所以我将行import cx_Oracle添加到我的应用程序中。现在抛出了这个错误:

Error occurred while reading WSGI handler: 
Traceback (most recent call last): 
File "D:\Anaconda2\lib\site-packages\wfastcgi.py", line 791, in main 
    env, handler = read_wsgi_handler(response.physical_path) 
File "D:\Anaconda2\lib\site-packages\wfastcgi.py", line 633, in read_wsgi_handler 
    handler = get_wsgi_handler(os.getenv("WSGI_HANDLER")) 
File "D:\Anaconda2\lib\site-packages\wfastcgi.py", line 616, in get_wsgi_handler 
    raise ValueError('"%s" could not be imported%s' % (handler_name, last_tb)) 
ValueError: "Bloomberg_server.app" could not be imported: 

Traceback (most recent call last): 
File "D:\Anaconda2\lib\site-packages\wfastcgi.py", line 600, in get_wsgi_handler 
    handler = __import__(module_name, fromlist=[name_list[0][0]]) 
File "D:\website\init__.py", line 6, in  import cx_Oracle 
    ImportError: DLL load failed: The specified module could not be found. StdOut: StdErr: 

正如标题所示,我无法在受控环境中重现该问题。相同的import语句在conda环境中运行良好,而且,我可以使用依赖于数据库连接的页面运行Flask调试服务器。

我很茫然。谁知道这里发生了什么?路径/ oracle_home变量指向即时客户端,我只安装了一个python环境。

1 个答案:

答案 0 :(得分:1)

我太尴尬了,不能承认这花了多长时间,但我找到了答案。 FastCGI的核心业务是保持子进程处于活动状态,以便后续对服务器的调用不需要启动Python环境。换句话说,安装python包后,建议重启。我通过重新启动解决了我的第一个问题..

this question的答案让我思考正确的方向。