我想将IP2Location Python library放在我运行的本地Pypi / Cheeseshop服务器上,以便我可以使用buildout将其自动包含在项目中。
首先,我按照IP2Location(简洁)文档中的说明安装了它来测试库:1)下载IP2Location C library并编译它2)在IP2Location Python库中运行python setup.py build && python setup.py install
我得到了它的工作,所以我尝试通过运行上传Python库到我的本地pypi服务器:
python setup.py register -r local sdist upload -r local
它将一个包上传到我的本地pypi服务器,但该包只包含库的Python部分,而不是C部分。我想要包含C库,然后当像buildout这样的工具从我的本地pypi服务器下载它时自动编译。
我对pypi很新。我正在努力做甚么可能吗?如果是这样,怎么样?
谢谢, 斯科特
答案 0 :(得分:2)
不幸的是没有,至少没有在python库中构造setup.py的方式。 通过尝试以下方法可能会有一些运气获得可重复性(请注意,我没有尝试过,IP2Location是专有库):
通过zc.recipe.cmmi在您的buildout中构建C库。类似于以下部分应该完成这项工作。
[iplocationc]
recipe = zc.recipe.cmmi
url = http://www.ip2location.com/downloads/ip2location-c-4.0.2.tar.gz
然后,使用zc.recipe.egg安装python副本作为鸡蛋:
[iplocation]
recipe = zc.recipe.egg:custom
eggs = iplocation
include-dirs = ${buildout:directory}/parts/iplocationc/includes_dir_goes_here
rpath = ${buildout:directory}/parts/iplocationc/libs_dir_location_goes_here
您可能需要稍微修改配方参数,并可能使用setup.py,但希望这样做。