在导入已编译的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
任何线索?
答案 0 :(得分:2)
由于文件从终端正确编译,因此在Pycharm中转到:
运行&gt;编辑配置&gt; Python解释器
并确保从终端和Pycharm运行时使用相同的Python版本。还要安装您可能需要的所有必需的Python头文件和库。
其他Python安装(例如Canopy或Anaconda)可能会干扰系统的Python。如果您有其中一个发行版但未使用它,则应将其完全删除以避免出现问题。有关卸载说明,请查看发行版的官方文档。