Pypi and Cython



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

我的包裹取决于SNPknock。当我尝试在一个新的系统(Ubuntu 18.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

我已经从tarball中提取了setup.py,其中包括错误消息。

这是我的困惑。setup.py文件将Cython指定为依赖项:

DEPENDENCIES = ['Cython>='+CYTHON_MIN_VERSION,
'numpy>='+NUMPY_MIN_VERSION]

然而,它也导入Cython,但似乎需要这样做才能使一些模块Cython化。这一切看起来有点循环,但我怀疑我(或这个包的作者(在这个过程中遗漏了一些东西。

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

如果snpknock为您的Python版本发布了一个egg或轮子,pip会下载它,获得一个依赖项列表并在不咨询setup.py的情况下安装它们;之后它会安装软件包。在这种情况下,pip将自动下载Cython或直接从egg/wheel安装编译后的扩展。

相关内容

  • 没有找到相关文章

最新更新