问题标签 [extension-modules]

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 回答
36 浏览

python - 运行 Cython 安装会生成不需要的文件

我目前正在为我的 python 项目创建一个 python 库,我需要某些东西比普通 python 运行得更快,而 Cython 是我能想到的唯一方法。

我创建了一个 setup.py 文件并尝试了多种实现 cython 构建的方法:

我用过

运行python setup.py install构建扩展,然后安装它,但是,它还会从我以前使用过 cython 的项目中生成许多额外的文件夹和文件。我只希望将我给它的文件创建到扩展模块中。

我尝试了不同的方法来创建扩展文件,但是,它们都没有做任何不同的事情并且它们都给出了相同的结果:在我的项目中创建了我没有要求的大量文件夹和文件。

对于我应该如何解决这个问题的任何帮助将不胜感激。

谢谢

0 投票
0 回答
152 浏览

python - 调用 __init__.py 中的模块与 python setup.py install 中断;导入 init 的模块依赖于尚未构建的扩展

并提前感谢您在这个问题上能给我的任何帮助。

我正在使用 cython 生成的 .c 文件部署一个 python 项目,该文件具有以下配置setup.py

在我们的主实现目录中,该__init__.py文件包含以下代码行:

使用python setup.py install我构建此项目时,出现以下错误:

正如我已经确定的那样,问题来自一个伪循环依赖项,其中 setup.py 脚本必须运行__init__.py才能执行其安装;__init__.py但是-- -- 中的这一行from .graphframe import GraphFrame依赖于尚未构建的扩展,并且在安装过程进入构建扩展阶段之前不会构建。

出于命名空间的原因,我们需要此行(有关在init .py模块导入和 __init__.py 在 Python中导入模块的解释,请参见此处的最佳答案),以确保我们正在开发的面向用户的 API 不会变得过于冗长。我做了一些研究,但我无法找到指定安装脚本执行顺序的方法。我还想避免在遇到此异常时尝试构建模块的 hacky 解决方案。

有没有人可以解决这个问题?一种我可以保留导入行__init__.py并确保在执行之前构建必要的 .c 文件的方法?

0 投票
1 回答
152 浏览

python - 带有 Python 回调的 Python 扩展模块

我的 Python 扩展模块遇到了不可预知的行为,该模块包装了一个 C++ 库,该库启动一个新的 pthread,并在完成一些工作后生成回调回调用者。我已将其大大简化为一个仍然演示此问题的简单示例。以下有时会生成一个Fatal Python error: PyEval_SaveThread: NULL tstate,通常相当快。有时它在 SIGSEGV 上tupledealoc。偶尔会出现这种死锁。我不知道为什么。有没有人有任何想法?

这是我的python测试代码

扩展模块是:

如果您想跳过setup.py编译扩展模块的步骤,这是我用来构建它的 shell 脚本

0 投票
1 回答
183 浏览

python - 如何在 Azure Web 作业中安装扩展模块?

我正在尝试安排一个在 Azure Web 作业中使用扩展模块的 python 脚本:

我在我的“站点包”文件夹中的(venv)中安装了所有适当的扩展模块 pip: 在此处输入图像描述

但它无法运行,因为它无法从 bs4 导入 beautifulsoup4: