python模块不能与virtualen一起工作

2024-05-21 13:09:30 发布

您现在位置:Python中文网/ 问答频道 /正文

目前我有一个用virtualenvwrapper创建的virtualenv。在那个virtualenv中,我安装了cx_Oracle扩展,pip安装了cx_Oracle。在

我有一个python脚本,它使用了来自cxu Oracle的几个命令,比如connect等。在

当python运行脚本时激活了我的思想脚本.py)它工作良好,不会产生错误。在

但是当我试图在PyCharm 4中运行相同的脚本时,它不起作用。我选择了virtualenv作为intrepeter。运行脚本时,我收到如下错误:

/Users/pgerrits/.virtualenvs/siebelaudit/bin/python3.4 -u /Applications/PyCharm.app/Contents/helpers/pydev/pydev_run_in_console.py 64420 64421 /Users/pgerrits/PycharmProjects/SiebelAudit/Audit/Siebel Audit/scratchpad.py
Running /Users/pgerrits/PycharmProjects/SiebelAudit/Audit/Siebel Audit/scratchpad.py
PyDev console: starting.    
ImportError: dlopen(/Users/pgerrits/.virtualenvs/siebelaudit/lib/python3.4/site-packages/cx_Oracle.so, 2): Library not loaded: /ade/b/3071542110/oracle/rdbms/lib/libclntsh.dylib.11.1
      Referenced from: /Users/pgerrits/.virtualenvs/siebelaudit/lib/python3.4/site-packages/cx_Oracle.so
      Reason: image not found

当在激活env的终端中使用相同的命令运行相同的脚本时,我没有得到任何错误。在

我已经尝试了以下方法: -使用脚本为oracle_home等添加了ENV变量 -使用pycharm env variables选项添加了env变量

我不得不切换到我的mac终端来运行和调试,这真的很烦人。有人知道问题出在哪里吗?在


Tags: py命令env脚本virtualenvlib错误virtualenvs
3条回答
import os
import platform

if platform.system() == 'Darwin':
    os.environ["ORACLE_HOME"] = '/opt/oracle/instantclient_11_2'
    os.environ["DYLD_LIBRARY_PATH"] = '/opt/oracle/instantclient_11_2'
    os.environ["LD_LIBRARY_PATH"] = '/opt/oracle/instantclient_11_2'

这是一个已知的问题的PyCharm。唯一的方法是使用PyCharm创建virtualenv。如果你用virtualenvwrpper创建,PyCharm有可能无法识别它。在

我必须为ORACLE_HOME设置环境变量 DYLD_LIBRARY_PATH和{} 重新启动PyCharm,让cxu Oracle正常工作。在

Environment Variables

Setting variables

相关问题 更多 >