我正试图组装我的第一个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.py
from the tarball here,其中包含了该错误消息。在
这是我的困惑。setup.py
文件将Cython指定为依赖项:
DEPENDENCIES = ['Cython>='+CYTHON_MIN_VERSION,
'numpy>='+NUMPY_MIN_VERSION]
然而,它也导入了Cython,但是它似乎需要这样做才能使一些模块实现Cython。这一切看起来有点循环,但我怀疑我(或者这个包的作者)缺少了关于这个过程的一些东西。在
问题似乎是你的平台没有轮子/鸡蛋。在这种情况下,}是否列为依赖项并不重要。在运行}可导入。在
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安装编译后的扩展。在相关问题 更多 >
编程相关推荐