问题标签 [cimport]

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.

0 投票
1 回答
3667 浏览

python - How do you get cimport to work in Cython?

I have a directory structure as so:

/my_module

init.py

A/

B/

In b.pyx I want to cimport functions from A.a. A regular python import works, but a cimport always fails.

Also, I'm compiling A/ and B/ separately because I couldn't figure out how to put a setup.py in the top module.

Can anyone help here?

0 投票
1 回答
2807 浏览

python - `cimport numpy` 使用 Cython 引发错误

我正在尝试将cimportNumPy 从.pyx文件中转换为 Python 2.7 shell,但它一直给我同样的错误:

我创建了一个.pyx名为的文件,numpyx只是为了查看它是否是我正在运行的更大代码的一部分,该文件包含:

我每次都会收到以下错误:

我不明白为什么它不起作用,因为只要文件不在其中,它就.pyx可以很好地编译文件cimport

如果有人能对此有所了解,那就太好了!

0 投票
1 回答
10836 浏览

python - `cimport` 导致交互式 Python 解释器出错

在 Python 解释器中运行cimport cython或运行cimport numpy会导致以下错误:

是环境变量路径问题吗?或者它不应该在解释器中运行?请帮忙。我花了几天时间试图摆脱这个错误。(顺便说一句,编译使用...的 .pyx 文件时我没有收到错误cimport numpy)谢谢!奥列格

0 投票
2 回答
2349 浏览

python - cython:不允许超出主包的相对 cimport

我正在尝试在 cython 中使用显式相对导入。从发行说明看来,相对导入应该在 cython 0.23 之后工作,而我正在使用 0.23.4 和 python 3.5。但是我得到了这个奇怪的错误,我找不到很多参考资料。错误仅来自 cimport:

目录结构为:

看来我可能在 setup.py 中搞砸了,所以我包含了下面的所有文件。

setup.py

driver.pyx

other.pyx

other.pxd

我试过__init__.py搬进test/. 我试过setup.pytest目录中运行(include_dirs适当调整)。他们都给出了同样的错误。

如果我这样做cimport other并删除.它可以工作,但这是一个玩具示例,我需要相对导入,以便其他文件夹可以正确导入。这是我能找到的唯一一个关于这个错误的例子,我很有信心我的问题是不同的。

0 投票
2 回答
1866 浏览

python - 为什么我的用于 pxd 文件的 Cython cimport 不起作用?

我是 Cython 的新手,所以我可能会遗漏一些明显的东西,但我已经阅读了文档并且一直在努力解决这个问题。

我有一个*.pyx使用文件构建的setup.py文件,如下所示:

这很好,我现在可以import path.to.helpers从姐妹目录和子目录中没有任何问题。

现在,最近我决定我也想添加一个helpers.pxd文件,这样我就可以cimport将它的一部分添加到其他 Cython 模块中。我添加了一个helpers.pxdinpath/to来促进这一点,但是当我尝试时cimport path.to.helpers,我得到

错误。我是否需要更改setup.py文件中的某些内容以允许cimport*.pxd文件中读取?

我发现的所有文档都没有说明这样做,我觉得我已经尝试了一切,但没有任何运气。想法?

0 投票
1 回答
563 浏览

python - 构建包含多个 Cython 扩展的 Python 包

我有以下目录结构:

其中文件内容如下:

bar.pxd

bar.pyx

foo.pyx

stuff.py

setup.py

问题

问题是,当我尝试安装它(pip install -e .在顶级testcython目录中)时,我从 Cython 收到以下错误:

这个答案(cython: relative cimport beyond main package is not allowed)意味着在对象的参数中包含根目录( '.')应该可以解决问题。include_dirsExtension

虽然Cython 文档的这一部分提到在使用包时zip_safe=False的参数中使用。setupsetuptools

正如您从我setup.py上面的文件中看到的那样,我已经包含了这两个 - 但我仍然收到上面的错误。

注意:如果我将扩展名(在Extension构造函数中)分别从BarFoo更改为testcython.Bartestcython.Foo,那么我会得到一个不同的错误:

0 投票
1 回答
215 浏览

python - 设置 setuptools 以创建带有可用标头的 cimportable 包

我尝试实现答案https://stackoverflow.com/a/57480599/7482208,但我坚持从另一个包导入一个包。

代码在这里:https ://github.com/iamishalkin/setuptools_cython_question

我想要的是wrap从 wrapper 文件夹中获得一个独立的包,这样您就可以在没有cust包的情况下使用它。

而且我还希望能够通过FuncWrapperwrap.

我所做的:

  • 首先我python setup.py bdist_wheelwrapper文件夹中运行(我想这是我做错了,因为它只给了我二进制文件)
  • 下一个pip instal dist/(some_name).whl
  • 接下来我添加import wrapinclude_dirs=wrap.get_include()喜欢custom/setup.py它完成numpy
  • python setup.py bdist_wheelcustom文件夹中运行,但失败了,第一步没有创建除二进制文件之外的文件

所以问题是:如何将.pxd文件添加到最终包中。

我也试过sdist不编​​译 cython 代码而只是复制它。