【发布时间】:2016-10-21 15:31:14
【问题描述】:
我正在尝试解决一个让我发疯的 PyCharm 问题。我希望我能在这里得到一些帮助。
我在 mac os 上使用 python 3.5 运行 anaconda。我需要使用 oracle 数据库,并且我已经使用带有“pip install”的官方说明安装了 cx_Oracle 包。 我写了一段代码来测试与数据库的连接。如果我从命令行运行代码,它工作正常,但 PyCharm 似乎不喜欢它。 GUI 似乎找不到包,因为导入下方有一条红线,上面写着“没有名为 cx_Oracle 的模块”。但我可以在“设置->项目->项目解释器”中找到与其他包一起列出的模块。如果我仍然运行它,在 PyCharm 中,我会收到以下错误:
import cx_Oracle
ImportError: dlopen(/Users/myuser/anaconda/lib/python3.5/site-packages/cx_Oracle.cpython-35m-darwin.so, 2): Library not loaded: @rpath/libclntsh.dylib.12.1
Referenced from: /Users/myuser/anaconda/lib/python3.5/site-packages/cx_Oracle.cpython-35m-darwin.so
Reason: image not found
项目解释器与我在命令行中使用的解释器相同,我已经使用“which”命令进行了检查。
sys.executable、os.getcwd() 和 sys.pat 在 PyCharm 和命令行中都是相同的。 唯一的区别似乎在于 os.environ。为了让 cx_Oracle 插件从命令行工作,我必须设置两个环境变量 DYLD_LIBRARY_PATH 和 LD_LIBRARY_PATH。如果我不设置这些,我也会在命令行中遇到同样的错误。因此,在 PyCharm 中,我在 python 脚本的开头添加了以下几行。
os.environ["DYLD_LIBRARY_PATH"]="/path/to/my/library"
os.environ["LD_LIBRARY_PATH"]="/path/to/my/library"
不幸的是,如果我从 PyCharm 运行代码,我仍然会收到错误消息。
【问题讨论】:
标签: macos python-3.x pycharm anaconda cx-oracle