python - Cython 和 PyCharm - 从终端在 Python 中不会发生的错误

标签 python pycharm cython

在导入已编译的 cython 函数期间,我遇到了一个非常奇怪的错误。我说奇怪是因为如果我从终端使用 python 而不是 Pycharm 控制台,一切都会正常工作。这是错误:

Traceback (most recent call last):
 File "<input>", line 1, in <module>
 File "/Applications/PyCharm CE.app/Contents/helpers/pydev/pydev_import_hook.py", line 21, in do_import
 module = self._system_import(name, *args, **kwargs)
 File "/Users/(me)/Analysis/analysis.py", line 8, in <module>
 from cfunctions import Cpotts_energy
 File "/Applications/PyCharm CE.app/Contents/helpers/pydev/pydev_import_hook.py", line 21, in do_import
 module = self._system_import(name, *args, **kwargs)
ImportError: dlopen(/Users/(me)/Analysis/cfunctions.so, 2): Symbol not found: _PyCapsule_New
 Referenced from: /Users/(me)/Analysis/cfunctions.so
 Expected in: flat namespace
 in /Users/(me)/Analysis/cfunctions.so

C 函数只是一个简单的数组求和,但正如我所说,从终端使用 python 不会发生错误,所以我猜 PyCharm 本身可能涉及一些超出我新手知识范围的晦涩设置。

Mac操作系统10.11.1,Python 2.7.3

有什么线索吗?

最佳答案

由于文件从终端正确编译,因此在 Pycharm 中转到:

Run > Edit Configurations > Python Interpreter

并确保从终端运行时和在 Pycharm 中使用相同的 Python 版本。还要安装您可能需要的所有必要的 Python header 和库。

其他 Python 安装(例如 Canopy 或 Anaconda)可能会干扰系统的 Python。如果您有这些发行版之一但不使用它,则应将其完全删除以避免出现问题。检查发行版的官方文档以获取卸载说明。

关于python - Cython 和 PyCharm - 从终端在 Python 中不会发生的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35608262/

相关文章:

python - 来自 Python 的 QPX Express API

python - 使局域网中的 django 服务器可以访问

python - PySpark 新列,从整数列表中选择值

python - 找不到满足 SoundRecognition 要求的版本

pycharm - 如何使用 virtualenv 配置 pycharm 远程解释器

linux - 使用cython将多个python模块构建成一个程序

python - MacOS 上 Python 3.7 中的 basemap 构建错误——来自 Cython?

python - Websocket 到 Python 中的可用数据 - 从 GDAX websocket feed 获取价格

python - 在 PyCharm 中设置断点

python - SystemError : Objects/cellobject. c:24:内部函数的参数错误