问题标签 [cythonize]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - windows下如何查看cython的pyxinport编译情况?
我正在 Windows 上开发 Cython 项目。我在我的包目录中创建了 2 个文件:
module1.py
module1.pyx
运行以下代码后,调用pyximport
:
编译后我找不到 .pyd 或 .c 文件。
在 Windows 上,这些文件位于何处?如何检查编译是否产生任何错误?
python - 如何将装饰器应用于 Cython cpdef 函数
我最近一直在玩 Cython,在将装饰器应用于 Cython 函数时遇到了这个错误
Cdef functions/classes cannot take arbitrary decorators
这是我正在修改的代码:
该错误表明 cdef 函数只能采用某些装饰器。是否可以编写可以应用于 cdef 函数的自己的装饰器?
编辑:对于未来的读者:
g = plus_one(_g)
@DavidW 的回答中提到的技巧很有效。它不适用于递归。例如,fib = memoize(fib)
在我的示例代码中执行的操作不会记住对 fib 的递归调用,尽管它确实会记住顶级调用。即调用fib(5)
将记住调用的结果fib(5)
,但它不会记住递归调用(即fib(4), fib(3), fib(2), fib(1)
)
正如@DavidW 指出的那样,cdef, cpdef
函数在编译时完全确定;装饰是运行时的事情,不会更新实际功能。
python - Cython pxd "cimport XXX as YYY" 导致 "YYY.pxd not found",即使 "cimport XXX" 有效
标题几乎说明了一切。
我正在尝试使用 cimport 一个模块
然后使用“someModuleBase”别名
但这会导致错误
我不知道 Cython 为什么要寻找这个 pxd 文件。如果我将别名重命名为与它工作的文件相同的名称,例如
要不就
并适当地使用它们。但这当然不是重点,我认为它应该以任何一种方式工作。我尝试搜索 SO 和谷歌,但只找到了我认为我没有犯的明显错误的解决方案。
-------------------------------------------------- ----------------------
附加信息:
我的文件夹结构看起来像这样
安装程序.py 文件
python - 将 .pyx 编译为 .pyd,包括相对导入
这是我学习sklearn的问题。sklearn 中有一些 cython 代码,例如:
包含_test.pyx
代码:
现在我想通过使用 Cython 来遵守_test.pyx
。_test.pyd
但它不起作用,错误是:
这是我的编译代码cythonbuild.py
:
然后我在cmd中运行命令:
我该如何解决这个问题?
python - 如何获取 pyd 文件的路径,也就是相当于 __file__
我有一个文件package.py
,我正在尝试打包到 package.pyd
. 我有以下声明package.py
当我运行时它工作正常,package.py
但是当我导入package.pyd
另一个文件时,wrapper.py
我收到以下错误消息
如何获取 .pyd 文件的位置。还有一种方法可以检查它是作为 .pyd 还是 .py 运行。
谢谢!
python - 使用 cython 将 c++ 中的 helloworld 包装到 python 中时出错
我有以下文件:
helloworld.cpp
其中包含
helloworld.pyx
其中包含:
其中setup.py
包含:
当我在 Ipython 中运行以下命令时,它会正确构建
但是当我尝试导入它时,我收到以下错误:
我还尝试了以下方法:
helloworld.pyx
包含:
在这种情况下,当我尝试构建它时,我得到:
这意味着它被递归调用。
python - Cython 调用优化
我有一个尝试导出到 Cython 的 Python 函数。我已经测试了两个实现,但我不明白为什么第二个比第一个慢。此外,我正在寻找提高速度的方法,但我不知道如何?
基本代码
我尝试在该<CODE TO IMPROVE>
部分中注入这两个代码示例:
最有效的方法
结果
效率较低
结果
python - 从 C++ 函数 Cython 返回包含 PyObject 的复杂对象
我正在尝试使用 Cython 将一些 C++ 类和函数包装到 Python 中。到目前为止,我已经包装了 2 个类,现在我想包装一个函数。
该函数的签名是
std::map<std::string, std::vector<PyObject*>> analyze(PyObject* img, LandmarkDetector::CLNF& clnf_model, LandmarkDetector::FaceModelParameters& params);
我已经成功地包装了CLNF
andFaceModelParameters
类,我在包装这个analyze
函数时遇到了麻烦。
该函数处理PyObject*
s 因为它处理 opencv,我希望能够在语言之间轻松传递它们。我正在使用这些函数来执行cv::Point
到 python 对象之间以及 python Mat 到cv::Mat
.
这是我的 pyx 文件:
但是在尝试编译它时,我收到了错误消息
(指的是线map[string, vector[object]] analyze [...]
)
python - Cython,如何包含“外部”模块并编译单个库?
我已经为软件创建了一个插件,这个插件是用 Python 编写的,我希望以 Mac OS 的共享库 (.so) 的形式分发它(仅限)。在我的代码中,我有许多对可能未安装在“目标”Mac 中的包的导入,我想避免让用户下载这些包,因为他们的 Mac 上没有 pip 等等......
最简单的解决方案是“构建”一个包含所有依赖项/模块的共享库,以确保用户只需下载它并激活软件中的插件,一切都会自动运行。
那可能吗?
我一直在网上进行大量搜索和阅读,我查看了 pyInstaller,但我不想创建一个独立的可执行文件,而是一个共享库,其中包含来自 Crypto、zerconf、twisted 等包的导入,等等
如果不是,有什么替代方案?
我已经尝试过 Cython,但我只将我的插件代码编译到一个库中,所以当我尝试在没有必要包的计算机中使用它时,我得到一个导入错误。
有没有办法“告诉” Cython 将代码的所有依赖项编译到一个共享库中?
正如我上面提到的 pyInstaller 可以用于独立的可执行文件,但在我的情况下,它需要是一个共享库......
非常感谢!
python - 通过 Cython 编译 Python 包
我对 cython 相当陌生,有谁知道如何通过 Cython 编译 python 项目(开销相对较低),因为我不断收到以下导入错误:
ImportError:没有名为 CythonRelated.testSource.MyClassObject 的模块
我的测试项目结构是这样的:
MainCythonTest 从 MyClassObject 模块导入类(通过
from CythonRelated.testSource.MyClassObject import myCustomObj
),初始化一个对象并调用一个对象方法。
我的 setup.py 看起来像这样:
我错过了什么?
将 setup.py 放在 CythonRelated 之外(显然在 cythonize 中更新 *.pyx 文件的相应路径)也无济于事
我的类对象.py
MainCythonTest.py