如何使用C库创建Python pypi包?

如何使用C库创建Python pypi包?,第1张

概述我想将 IP2Location Python library放在我运行的本地Pypi / Cheeseshop服务器上,以便我可以使用buildout将其自动包含在项目中. 首先,我按照IP2Location(简洁)文档中的说明安装了它来测试库:1)下载IP2Location C library并编译它2)运行python setup.py build&& python setup.py安装在IP 我想将 IP2Location Python library放在我运行的本地Pypi / Cheeseshop服务器上,以便我可以使用buildout将其自动包含在项目中.

首先,我按照IP2Location(简洁)文档中的说明安装了它来测试库:1)下载IP2Location C library并编译它2)运行python setup.py build&& python setup.py安装在IP2Location Python库中.

我得到了它的工作,所以我尝试通过运行以下命令将Python库上传到我的本地pypi服务器:

python setup.py register -r local sdist upload -r local

它将一个包上传到我的本地pypi服务器,但该包只包含库的Python部分,而不是C部分.我想要包含C库,然后当像buildout这样的工具从我的本地pypi服务器下载它时自动编译.

我对pypi很新.我正在努力做甚么可能吗?如果是这样,怎么样?

谢谢,
斯科特

解决方法 不幸的是,至少没有在python库中构造setup.py的方式.
通过尝试以下方法可能会有一些运气获得可重复性(请注意,我没有尝试过,IP2Location是一个专有库):

通过zc.recipe.cmmi在您的buildout中构建C库.类似于以下的部分应该完成这项工作.

[iplocationc]recipe = zc.recipe.cmmiurl = http://www.ip2location.com/downloads/ip2location-c-4.0.2.tar.gz

然后,使用zc.recipe.egg将python对应项安装为egg:

[iplocation]recipe = zc.recipe.egg:customeggs = iplocationinclude-dirs = ${buildout:directory}/parts/iplocationc/includes_dir_goes_hererpath = ${buildout:directory}/parts/iplocationc/libs_dir_location_goes_here

您可能需要稍微修改配方参数并可能使用setup.py,但希望这应该这样做.

总结

以上是内存溢出为你收集整理的如何使用C库创建Python pypi包?全部内容,希望文章能够帮你解决如何使用C库创建Python pypi包?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/langs/1230134.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存