首页 > 解决方案 > SWIG 在 conda 中的 Python 模块:我必须在哪里放置哪个文件?

问题描述

我正在尝试使用 SWIG 为 C++ 共享库生成 Python 绑定,并使用 conda 分发项目。构建过程似乎可以执行,因为我可以执行

import mymodule as m
ret = m.myfunctioninmymodule()

在我的构建目录中。现在我想安装在 Windows 上的 conda 环境中创建的文件(即mymodule.py_mymodule.pyd),以便我可以从任何地方访问它们。但是我必须将文件放在哪里?

到目前为止,我尝试的是将两个文件与 a __init__.py(但是它是空的)一起放在一个包中,然后按照此处的建议编写一个 setup.py 。包裹有形式

- mypackage
 |- __init__.py
 |- mymodule.py
 |- _mymodule.pyd

并安装在C:\mypathtoconda\conda\envs\myenvironmentname\Lib\site-packages\mypackage-1.0-py3.6-win-amd64.egg. 但是,python 导入(见上文)失败了

ImportError: cannot import name '_mymodule'

应该注意的是,在 Linux 下,这种方法与包一起工作得很好。

编辑:是空的__init__.py,因为这足以构建一个包。但是,我不确定里面有什么。我是否必须为某些组件提供路径?

标签: pythonwindowscondaswig

解决方案


推荐阅读