Cython和PyCharm - 来自终端的Python中不会出现错误

时间:2016-02-24 16:53:53

标签: python pycharm cython

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

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 OS 10.11.1,Python 2.7.3

任何线索?

1 个答案:

答案 0 :(得分:2)

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

  

运行&gt;编辑配置&gt; Python解释器

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

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