我正在尝试组装我的第一个 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
我已经提取了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
如果说 Cython
也没关系被列为依赖项。您必须有Cython
运行之前pip install
因为pip
如果不运行 setup.py
则无法从源代码获取依赖项列表和setup.py
需要Cython
可导入。
如果snpknock
我们曾经为您的 Python 版本发布过鸡蛋或轮子 pip
会下载它,获取依赖项列表并在不咨询的情况下安装它们 setup.py
;之后它会安装该软件包。在这种情况下pip
会自动下载Cython
或者直接从 Egg/wheel 安装编译的扩展。
关于python - Pypi 和 Cython,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51354856/