Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ctypes分发Python库时出现问题_Python_Python 3.x_Dependency Management_Pypi - Fatal编程技术网

使用ctypes分发Python库时出现问题

使用ctypes分发Python库时出现问题,python,python-3.x,dependency-management,pypi,Python,Python 3.x,Dependency Management,Pypi,我正在尝试分发一个Python库,该库使用ctypes动态加载共享对象文件。共享对象文件是使用Golang创建的。我有一个简单的main.go文件,它在传递的几个链接上执行一些网络请求,并且.so&.h文件就是基于此构建的。我按照以下说明编译头文件和共享对象文件: 当前的库结构是 cwd(当前工作目录) cwd/display\u status/display\u status.py cwd/display\u status/\uuuuuu init\uuuuuuuuuuuuuuuuuuuy

我正在尝试分发一个Python库,该库使用
ctypes
动态加载共享对象文件。共享对象文件是使用Golang创建的。我有一个简单的
main.go
文件,它在传递的几个链接上执行一些网络请求,并且
.so
&
.h
文件就是基于此构建的。我按照以下说明编译头文件和共享对象文件:

当前的库结构是 cwd(当前工作目录)

  • cwd/display\u status/display\u status.py
  • cwd/display\u status/\uuuuuu init\uuuuuuuuuuuuuuuuuuuy
  • cwd/display\u status/display\u status.h
  • cwd/display\u status/display\u status.so
  • cwd/display\u status/main.go
直接运行
pyhton3 display\u status.py
时,
display\u status.py
工作正常,但当我将库上载到PyPI并尝试导入display\u status时,出现此错误

ImportError:动态模块未定义模块导出功能(PyInit\u显示\u状态)

我尝试了由提供的各种设置,但均无效

我当前的设置是

导入路径库
从setuptools导入安装程序中,查找\u包、扩展名
#包含此文件的目录
HERE=pathlib.Path(_文件__).parent
#自述文件的文本
自述文件=(此处/“README.md”).read_text()
module1=扩展('display_status',sources=['main.go']))
#对setup()的调用完成了所有工作
设置(
name=“显示\u状态”,
version=“1.0.11”,
description=“显示链接的状态”,
长描述=自述,
长\u描述\u内容\u type=“text/markdown”,
url=”https://github.com/KingAkeem/display_status",
作者=“Akeem King”,
作者_电子邮件=”akeemtlking@gmail.com",
license=“GNU GPLv3”,
分类器=[
“许可证::OSI批准::GNU通用公共许可证v3(LGPLv3)”,
“编程语言::Python::3”,
“编程语言::Python::3.6”,
],
软件包=['display_status'],
package\u data=find\u packages(),
"""
数据包={
“显示_状态”:
[
“梅因,开始”,
“显示_status.h”,
'显示您的状态。所以'
]
},
"""
include\u package\u data=True
)

将.py和.so文件使用相同的名称甚至在相同的目录中是一个坏主意。那么什么是更好的结构呢?只需重命名.so,e。G附加一个“\u bin”之类的东西。这能解决问题吗?