Pypi 和 Cython
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
我提取了 setup.py
from the tarball here,其中包含该错误消息。
这是我的困惑。 setup.py
文件将 Cython 指定为依赖项:
DEPENDENCIES = ['Cython>='+CYTHON_MIN_VERSION,
'numpy>='+NUMPY_MIN_VERSION]
然而,它也导入了 Cython,但它似乎需要这样做才能对某些模块进行 cython 化。这一切看起来有点循环,但我怀疑我(或这个包的作者)在这个过程中遗漏了一些东西。
问题似乎是没有 wheels/eggs 适合您的平台。在这种情况下 pip
下载源代码并运行 python setup.py install
。如果 setup.py
导入 Cython
则 Cython
是否被列为依赖项并不重要。您必须在 运行 pip install
之前有 Cython
因为 pip
无法从没有 运行 setup.py
和 [=12= 的源代码中获取依赖项列表] 要求 Cython
可导入。
如果 snpknock
曾为您的 Python 版本发布过 egg 或 wheel pip
会下载它,获取依赖项列表并在不咨询的情况下安装它们 setup.py
;之后它会安装包。在这种情况下,pip
会自动下载 Cython
或直接从 egg/wheel.
安装已编译的扩展
我正在尝试组装我的第一个 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 化。这一切看起来有点循环,但我怀疑我(或这个包的作者)在这个过程中遗漏了一些东西。
问题似乎是没有 wheels/eggs 适合您的平台。在这种情况下 pip
下载源代码并运行 python setup.py install
。如果 setup.py
导入 Cython
则 Cython
是否被列为依赖项并不重要。您必须在 运行 pip install
之前有 Cython
因为 pip
无法从没有 运行 setup.py
和 [=12= 的源代码中获取依赖项列表] 要求 Cython
可导入。
如果 snpknock
曾为您的 Python 版本发布过 egg 或 wheel pip
会下载它,获取依赖项列表并在不咨询的情况下安装它们 setup.py
;之后它会安装包。在这种情况下,pip
会自动下载 Cython
或直接从 egg/wheel.