这是我正在尝试编译和安装的 python 包 的链接。我已经尝试了几个小时可以在网上找到的内容,但无法克服 ImportError
。
包装内容如下。
它的 setup.py 具有以下内容。这里有两个模块。一个是带有 sparse_learning
的 python 包装器包,另一个是名为 proj_module
的 ac 扩展模块。
我按照这里描述的过程 https://docs.python.org/3.6/extending/building.html 在 Ubuntu 18.04 上编译和安装。 没有错误信息。
sudo python3 setup.py build_ext –inplace
sudo python3 setup.py 安装
然后,当我尝试加载 C 扩展模块 proj_module
时,出现错误“ImportError: dynamic module does not define module export function”。
python3 -c“导入proj_module”
我尝试应用在线找到的解决方案,包括使用 sudo apt purge python2.7-minimal
卸载 Python2,或将 python3 站点包路径添加到 bashrc。但是,它们都不起作用。
我只知道它最初是为 Python 2 编写的。然后在 main_wrapper.c
中进行了两次修改以使其为 Python 3 运行。它们对我来说是正确的……
原文由 Tony 发布,翻译遵循 CC BY-SA 4.0 许可协议
看起来您在此处的 Python 3 模块中混合了一些 Python 2 风格的代码。你只需要更换
PyMODINIT_FUNC initproj_module() {
和
PyMODINIT_FUNC PyInit_proj_module() {
在你的
main_wrapper.c
文件中。