python - Pypi 和 Cython

标签 python installation cython pypi

我正在尝试组装我的第一个 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/

相关文章:

python - 编译成功后无法导入已编译的cython函数

python - 在 Cython 中使用半精度 NumPy float

python - 在 Cython 中优化字符串

python - 创建计数的动态嵌套字典

python - 在 Python 中重命名的 XLS 文件会损坏吗?

Python Ctypes Read/WriteProcessMemory() - 错误 5/998 帮助!

python - 在 Python 中使用带有多个参数的 __add__ 运算符

unix - ./configure 我可以使用/some/path/configure - Unix, Linux

python - SpaCy 安装(扩展)因 pip install 失败

installation - 通过 cmd 行或 GUI 设置 JAVA_HOME 之间有区别吗