皮比和赛顿

2024-06-17 12:32:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图组装我的第一个PyPi包,但对它的一些基本方面越来越困惑。在

我的包依赖于SNPknock。当我尝试在新系统(ubuntu18.04)上安装它时,我得到: pip install snpknock Collecting snpknock Using cached https://files.pythonhosted.org/packages/68/a0/ceb6adc2b7f1a3009f2077c157a99640094021a66f881cb678ecf4 78887f/SNPknock-0.5.2.tar.gz Complete output from command python setup.py egg_info: You don't seem to have Cython installed. Please get a copy from www.cython.org and install it

我提取了setup.pyfrom the tarball here,其中包含了该错误消息。在

这是我的困惑。setup.py文件将Cython指定为依赖项: DEPENDENCIES = ['Cython>='+CYTHON_MIN_VERSION, 'numpy>='+NUMPY_MIN_VERSION] 然而,它也导入了Cython,但是它似乎需要这样做才能使一些模块实现Cython。这一切看起来有点循环,但我怀疑我(或者这个包的作者)缺少了关于这个过程的一些东西。在


Tags: installpipfrompyorgpypiversion系统
1条回答
网友
1楼 · 发布于 2024-06-17 12:32:09

问题似乎是你的平台没有轮子/鸡蛋。在这种情况下,pip下载源代码并运行python setup.py install。如果setup.py导入Cython,那么所说的{}是否列为依赖项并不重要。在运行pip install之前,必须有Cython,因为pip无法在不运行setup.py的情况下从源代码获取依赖项列表,setup.py要求{}可导入。在

如果snpknock曾经为您的Python版本发布过一个egg或wheel,pip会下载它,获取一个依赖项列表并在不咨询{}的情况下安装它们,然后安装包。在这种情况下,pip将自动下载Cython或直接从egg/wheel安装编译后的扩展。在

相关问题 更多 >