用Boost.Python创建的Python模块不会被导入

时间:2017-03-23 18:53:10

标签: python c++ boost-python

我有一个使用Boost.Python的Python 3绑定的大型C ++模块,我使用CMOS on macOS编译成server { listen 80; server_name localhost; # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 location ~ \.php$ { root /var/www; index index.php index.html index.htm; try_files $uri /index.php?&query_string; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_read_timeout 60; fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; include fastcgi_params; } } 文件。

当我尝试在REPL中导入它时,一切似乎都正常工作:

.so

但是,只要我运行>>>import myModule >>> 语句,Python的着名火箭图标就会出现在Dock中并在那里几分钟然后停下来。显然,我无法访问模块中定义的任何函数,因此导入看起来很好,但实际上并没有做任何事情。

我尝试在控制台中查看并在每次import时看到,我得到两个import myModule。 它带来了thisthat相关问题,但我找不到确切的问题。

C ++模块非常庞大,所以我无法查看代码并找到问题,因此我要求提供有关至少如何调试该问题的任何提示。

1 个答案:

答案 0 :(得分:0)

我可以建议以下步骤:

  • 尝试通过本地python会话导入该模块。因此,运行交互式python解释器,并导入myModule'。

如果不好,请尝试检查:

  • 是python版本,myMoudle与之链接,与使用的解释器类似
  • 检查构建架构是否相同
  • 检查您是否可以加载简单的boost.python示例模块

如果没问题,请检查您是否在python代码中正确设置了模块搜索路径。