python - 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
,因为这足以构建一个包。但是,我不确定里面有什么。我是否必须为某些组件提供路径?
解决方案
推荐阅读
- c# - 查询 XML 文件的更简单方法?C# - MVC .Net
- java - 在受保护的 void 超级方法中返回
- java - 使用包含多个 JSON 数组的 Java 解析来自 api 的 JSON 响应
- c# - 连接到 SQL Server 时登录失败错误
- html - 为什么 CSS3 媒体查询 @media(max-width) 不起作用
- c++ - 在制作 c++ DLL 时,我必须在函数定义上重复 extern"C" 和 __declspec(dllexport/import) 吗?
- javascript - 使用图像的绝对 URL 构建 Angular 应用程序
- scala - 在scala中加入多个数据框
- java - 如何在不使用 Logstash 或 kibana 的情况下将 CSV 文件插入到 elasticsearch 中?
- java - android studio中的奇怪错误,网上没有类似的东西,也不知道原因