Python 带Cython的部分构建的构建
我在buildout遇到了cython的问题 其中一部分是使用cython从Python 带Cython的部分构建的构建,python,cython,buildout,Python,Cython,Buildout,我在buildout遇到了cython的问题 其中一部分是使用cython从.c文件和.pyx文件构建模块 我已经尝试了许多解决方案: 但一切都以错误告终: ImportError:没有名为Cython.Distutils的模块 当构建加载此cython模块的setup.py时,此附加 请注意,setup.py在从其自己的目录调用时以及在buildout bin目录中使用解释器时是可以工作的 感谢您的帮助。您链接的文章告诉您如何从构建安装Cython,但要做到这一点,您需要对站点软件包文
.c
文件和.pyx
文件构建模块
我已经尝试了许多解决方案:
ImportError:没有名为Cython.Distutils的模块
当构建加载此cython模块的setup.py
时,此附加
请注意,setup.py
在从其自己的目录调用时以及在buildout bin目录中使用解释器时是可以工作的
感谢您的帮助。您链接的文章告诉您如何从构建安装Cython,但要做到这一点,您需要对站点软件包
文件夹进行写访问。有3种方法可以运行这些构建:
以root用户身份运行它,并将Cython安装到python的系统中
网站包。通常,您希望避免这样做
编译自己的Python。如果您愿意,这可能是唯一的选择
使用系统上尚未安装的Python版本。有
将允许您生成任何版本的
Python从内部构建
使用。这将(在buildout文件夹中)创建一个
完整的Python虚拟环境,包括您自己的
站点包
文件夹。这通常是运行数据库的最佳方式
可以使用系统Python(或任何其他
您已经安装了系统范围的)
我建议您将使用virtualenv
作为软件安装说明的一部分。没有办法将此作为一个单一步骤来完成,但可以将其作为两个步骤来完成
使用:
之所以可能,是因为buildout支持一个无人提及的模糊选项“install”,但您可以使用它,如下所示:
[buildout]
parts = deps py # <---- Notice we don't depend on cython here
eggs =
whatever
kdist
nark
kivy # <--- But we do have a module that requires cython to build
develop =
.
lib/nark
lib/kivy-dist
[cython] # <---- By calling ./bin/buildout install cython we trigger this
recipe = zc.recipe.egg:script
parts = cython-py
interpreter = cpy # <--- Which makes our dummy ./bin/cpy
eggs =
cython
pyinstaller
[deps]
recipe = zc.recipe.egg:eggs
eggs = ${buildout:eggs}
[py]
recipe = zc.recipe.egg:script
interpreter = py
eggs = ${buildout:eggs}
$ ls bin/
buildout garden py
没有可能或不可能在virtualenv中挂起并在以后把事情搞砸的遗留软件包。这就是为什么我们首先要使用buildout,对吗
…当然,如果你想让cython闲逛,也可以把它放在顶部的依赖项中 我今天找到了这个食谱
这就解决了问题
这可以通过使用扩展配方安装cython来解决问题,因此在buildout runsetup.py develope
问题是在没有将cython作为系统级安装的情况下构建cython模块。您确定cython已正确安装,并且已将PYTHONPATH
环境变量设置为包含cython模块所在的目录?您是指在系统级吗?这将使此构建无法在没有cython的系统上部署?你说的“系统级”是什么意思?我指的是安装在站点包中的。感谢您查看我的问题。好吧,您需要将其安装在某个地方,或者安装在/usr/local/lib/python2.X/site packages
中,或者安装在您的homedir中。在后一种情况下,PYTHONPATH
必须正确设置。感谢您的建议,我将以这种方式挖掘。我觉得答案很好。OP用相关的解决方案和背景回答自己的问题。OP在原始问题几年后回来提供答案的事实非常符合StackOverflow的精神,值得投票。参见相关XKCD:@HåkenLid:说得好,我也投了赞成票。@OP:您也可以接受您的答案:-)So cool不知道该参数,这是我正在寻找的缺失部分(在运行buildout时不要总是重建所有零件)。格雷西亚斯!
$ ls bin/
buildout garden py