未找到符号,应位于:平面命名空间

2024-01-03

我有一个巨大的gl.pxd包含所有定义的文件gl.h, glu.h and glut.h。例如它有这些行:

cdef extern from '<OpenGL/gl.h>':
    ctypedef unsigned int GLenum
    cdef void glBegin( GLenum mode )

我有一个window.pyx文件,看起来像这样:

# Import OpenGL definitions
# headers of gl, glu and glut
from gl cimport *

cdef int argcp
cdef char **argv

cdef void render_scene():

    glClear( GL_COLOR_BUFFER_BIT )

    glBegin( GL_TRIANGLES )
    glVertex2f( -.5, -.5)
    glVertex2f( .5, 0 )
    glVertex2f( 0, -5. )
    glEnd()

    glutSwapBuffers()

cpdef main():
    # Initialize GLUT and create Window
    glutInit( &argcp, argv )
    glutInitDisplayMode( GLUT_RGBA | GLUT_DOUBLE )
    glutInitWindowPosition( 100, 100 )
    glutInitWindowSize( 1280, 720 )
    glutCreateWindow( 'My Shiny New Window' )

    # Register callbacks
    glutDisplayFunc( render_scene )

    # Enter GLUT event processing cycle
    glutMainLoop()

我也有一个setup.py看起来像这样:

from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext

setup(
    cmdclass = {'build_ext': build_ext},
    ext_modules = [Extension('window', ['window.pyx'])]
)

我用哪个打电话python3 setup.py build_ext --inplace它编译,输出是这样的:

running build_ext
cythoning window.pyx to window.c
building 'window' extension
/usr/bin/clang -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -O3 -arch i386 -arch x86_64 -I/Library/Frameworks/Python.framework/Versions/3.3/include/python3.3m -c window.c -o build/temp.macosx-10.6-intel-3.3/window.o
/usr/bin/clang -bundle -undefined dynamic_lookup -arch i386 -arch x86_64 -g build/temp.macosx-10.6-intel-3.3/window.o -o /Users/petervaro/cygl/window.so

我有一个window_test.py看起来像这样:

import window
window.main()

但是如果我想运行这个 python 代码片段,我会得到这个错误:

Traceback (most recent call last):
  File "/Users/petervaro/cygl/window_test.py", line 3, in <module>
    import window
ImportError: dlopen(/Users/petervaro/cygl/window.so, 2): Symbol not found: _glBegin
  Referenced from: /Users/petervaro/cygl/window.so
  Expected in: flat namespace
 in /Users/petervaro/cygl/window.so

我的问题与此非常相似:导入 Cython 生成的 .so 文件时,此 ImportError 的含义是什么? https://stackoverflow.com/q/7068721/2188562-- 虽然我没有外部库,但我想使用builtinOpenGL 库...

哦,我使用的是 Mac OS X 10.8.5、Cython 19.2 和 Python 3.3。 任何帮助将不胜感激!

提前致谢!


即使系统上存在 OpenGL 和 GLUT (builtins)我必须在编译过程中将它们作为框架链接起来,所以setup.py应该看起来像这样:

from distutils.core import setup
from distutils.extension import Extension
from Cython.Build import cythonize

exts = Extension( name='window',
                  sources=['window.pyx'],
                  extra_link_args=['-framework', 'OpenGL', '-framework', 'GLUT'])

setup( name='cygl',
       ext_modules = cythonize( exts ))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

未找到符号,应位于:平面命名空间 的相关文章

  • 尝试从网页Python和BeautifulSoup获取编码

    我试图从网页检索字符集 这会一直改变 目前我使用 beautifulSoup 来解析页面 然后从标题中提取字符集 这工作正常 直到我遇到一个网站 到目前为止 我的代码以及与其他页面一起使用的代码是 def get encoding soup
  • 使用 Python 3 动态插入到 sqlite

    我想使用 sqlite 写入多个表 但我不想提前手动指定查询 有数十种可能的排列 例如 def insert sqlite tablename data list global dbc dbc execute insert into tab
  • 如何获取numpy.random.choice的索引? - Python

    是否可以修改 numpy random choice 函数以使其返回所选元素的索引 基本上 我想创建一个列表并随机选择元素而不进行替换 import numpy as np gt gt gt a 1 4 1 3 3 2 1 4 gt gt
  • 以类型化内存视图作为成员的结构定义

    目前我正在尝试让一个具有类型化内存视图的结构能够工作 例如 ctypedef struct node unsigned int inds 如果 inds 不是内存视图 据我所知 它可以完美地工作 然而 通过内存视图并使用类似的东西 def
  • 如何将 sql 数据输出到 QCalendarWidget

    我希望能够在日历小部件上突出显示 SQL 数据库中的一天 就像启动程序时突出显示当前日期一样 在我的示例中 它是红色突出显示 我想要发生的是 当用户按下突出显示的日期时 数据库中日期旁边的文本将显示在日历下方的标签上 这是我使用 QT De
  • OpenCV 跟踪器:模型未在函数 init 中初始化

    在视频的第一帧 我运行一个对象检测器 它返回对象的边界框 如下所示
  • 如何使用 opencv python 计算乐高积木上的孔数?

    我正在开发我的 python 项目 我需要计算每个乐高积木组件中有多少个孔 我将从输入 json 文件中获取有关需要计算哪个程序集的信息 如下所示 img 001 red 0 blue 2 white 1 grey 1 yellow 1 r
  • ModuleNotFoundError:没有名为“bs4”的模块

    当我尝试像这样导入 BeautifulSoup 时 from bs4 import BeautifulSoup 当我运行我的代码时 我收到此错误消息 ModuleNotFoundError No module named bs4 如果有人知
  • NumPy 相当于 Keras 函数 utils.to_categorical

    我有一个使用 Keras 进行机器学习的 Python 脚本 我正在构建 X 和 Y 它们分别是特征和标签 标签的构建方式如下 def main depth 10 nclass 101 skip True output True video
  • 哪个版本的 Miniconda 具有适用于 Windows 64 位的 Python 3.6?

    我正在开发一个需要这些深度学习库的项目 keras 和 tensorflow 不幸的是 这些不适用于 Python 3 7 有人可以告诉我一个带有 Python 3 6 的 Miniconda 版本 适用于 Windows 64 位 吗 我
  • 使用seaborn绘制简单线图

    我正在尝试使用seaborn python 绘制ROC曲线 对于 matplotlib 我只需使用该函数plot plt plot one minus specificity sensitivity bs where one minus s
  • 将字符串中的随机字符转换为大写

    我尝试随机附加文本字符串 这样就不只是有像这样的输出 gt gt gt david 我最终会得到类似的东西 gt gt gt DaViD gt gt gt dAviD 我现在的代码是这样的 import random import stri
  • Discord.py 嵌入中禁用按钮/冻结按钮

    I m trying to make a replica of this bot in which when I press any of the buttons below it shows a dropdown menu and you
  • Python守护进程:保持日志记录

    我有一个将一些数据记录到磁盘的脚本 logging basicConfig filename davis debug log level logging DEBUG logging basicConfig filename davis er
  • 确定分割形状几何体的“左”侧和“右”侧

    我的问题是 我怎样才能确定哪一个Aside and Bside的侧面已经分割的旋转矩形几何体 http nbviewer jupyter org urls dl dropbox com s ll3mchnx0jwzjnf determine
  • 使用 selenium 和 python 来提取 javascript 生成的 HTML?萤火虫?

    这里是Python新手 我遇到的是数据收集问题 我在这个网站上 当我用 Firebug 检查我想要的元素时 它显示了包含我需要的信息的源 然而常规源代码 没有 Firebug 不会给我这个信息 这意味着我也无法通过正常的 selenium
  • 如何测试某些代码在 C++ 中无法编译? [复制]

    这个问题在这里已经有答案了 可能的重复 单元测试编译时错误 https stackoverflow com questions 605915 unit test compile time error 我想知道是否可以编写一种单元测试来验证给
  • 仅允许正小数

    在我的 Django 模型中 我创建了一个如下所示的小数字段 price models DecimalField u Price decimal places 2 max digits 12 显然 价格为负或零是没有意义的 有没有办法将小数
  • 寻找完美的正方形

    我有这个Python代码 def sqrt x ans 0 if x gt 0 while ans ans lt x ans ans 1 if ans ans x print x is not a perfect square return
  • Jupyter Notebook:带有小部件的交互式绘图

    我正在尝试生成一个依赖于小部件的交互式绘图 我遇到的问题是 当我使用滑块更改参数时 会在前一个绘图之后完成一个新绘图 而我预计只有一个绘图会根据参数发生变化 Example from ipywidgets import interact i

随机推荐

  • 如何检查一个值的位奇偶校验是偶数还是奇数?

    一个值有偶校验 https en wikipedia org wiki Parity bit如果它有偶数个 1 位 如果某个值具有奇数个 1 位 则该值具有奇数奇偶校验 例如 0110具有偶数奇偶性 并且1110有奇校验 我必须回来1 if
  • Safari:在卸载之前

    前提条件 你应该在狩猎10 您好 我在请假时遇到困难 保持确认框在不同浏览器中显示在我的页面上 请前往https www biznessapps com cms https www biznessapps com cms 并使用以下凭据登录
  • 在 Chrome 中使用 window.location.reload 从缓存加载和哈希片段不起作用

    我需要用 Javascript 重新加载页面 我用window location reload为了这个目的 现在 我在 Chrome 中观察到一个奇怪的行为 Chrome 总是连接到服务器并询问文档是否被修改 虽然一个304 Not Mod
  • 重新创建 iOS 7 日历 UIView 动画

    每个人都知道 iOS 7 日历应用程序中全新的精彩动画 您可以在这段短视频中看到它们 http vimeo com 69247779 http vimeo com 69247779 我会重新创建类似的东西 创建一个 模式 矩形 当用户点击时
  • 在 ios 7.1 中自定义按钮形状

    苹果已经添加了纽扣形状 http www todaysiphone com 2014 03 switch button shapes ios 7 1 iOS 7 1 中的功能 但我需要让它在我的应用程序中禁用或更改其默认颜色 形状以匹配我的
  • 关于 Android 活动

    我面临着一个与相关的大问题Activity 我的场景如下 我启动活动 A 单击一个按钮 然后从图库中选择一张图像 然后在onActivityResult我打了电话startActivity B 现在 在我的活动 B 中 A 中选择的图像已显
  • AVL树的最小节点数?

    我知道AVL树中最小节点数的公式是 S h S h 1 S h 2 1 然而 我真的不知道如何使用这个函数 假设我们的 AVL 高度为 6 答案告诉我最小值 7 4 1 12 但是你如何得到这个数字呢 我的意思是 当你插入 6 时 不是 6
  • 函数对象属性 __kwdefaults__ 有什么用?

    函数对象有属性 defaults and kwdefaults 我发现如果一个函数有一些默认参数 那么它们将作为一个元组放入 defaults but kwdefaults is None 何时使用属性 kwdefaults def foo
  • 尝试使用 os.makedirs 时出现“OSError:[Errno 17] 文件存在”[重复]

    这个问题在这里已经有答案了 我在集群系统上有几个从 Python 并行运行的线程 每个Python线程输出到一个目录mydir 每个脚本在输出之前检查是否mydir存在 如果不存在则创建它 if not os path isdir mydi
  • 汇编“下面”是否有编程语言? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 防止 CHARACTER VARYING 字段中出现空字符串

    我正在使用 PostgreSQL 并希望阻止某些必需的 CHARACTER VARYING VARCHAR 字段允许空字符串输入 这些字段还需要包含唯一值 因此我已经使用了唯一约束 但是 这并不能阻止原始 唯一 空值 基本示例 其中用户名需
  • 如何使用 MFC 应用程序 (C++ Visual Studio 2010) 中的按钮更改图像的可见属性?

    我正在尝试制作一个程序 当按下应用程序中某个名为 隐藏 的按钮时 图像就会消失 我知道在 Windows 窗体应用程序中它会是这样的 pictureBox1 gt Visible true false 但该代码在 MFC 中不起作用 我在M
  • 函数指针有什么用,我将如何使用它们?

    我知道我可以使用函数指针 有人可以解释为什么要使用它们以及如何使用它们吗 简短的示例代码对我非常有帮助 一个简单的情况是这样的 根据您的业务逻辑 您有一系列操作 函数 您有一个哈希函数 可以将输入问题减少到业务逻辑函数之一 干净的代码将具有
  • 可以在 Node.JS Express 应用程序中插入中间件吗

    有没有办法在 Express 堆栈中注入中间件 我的意思是我想让我的 app js 设置主中间件链 然后调用传递应用程序实例的其他模块 他们可能想要插入更多中间件 例如想要在正确位置添加护照的身份验证模块 你一定可以通过你的app对象其他模
  • 从 Option[] 包装的对象中读取多个变量

    我有一个变量obj Option MyObject 并希望从中提取多个变量 如果未设置对象 则应使用默认值 目前我是这样做的 val var1 obj match case Some o gt e var1 case gt default1
  • 如何通过包含部分字符串的组件名称查询组件

    我想用Ext ComponentQuery query 查询包含某个名称路径的按钮名称 假设我有 4 个按钮 名称声明为 edit btn add btn add2 btn 和 edit2 btn 然后我使用查询 Ext Component
  • Sass --watch 不重新编译

    Sass 更新了我的主样式表build css当我将更改保存到build scss 但不会更新build css例如 当我保存对任何部分的更改时 grid settings scss 我基本上必须手动重新保存build scss每次我对部分
  • 如何在西门子 S7-1200 和 python 之间进行通信?

    我正在 S7 1200 plc 上运行一个进程 我需要它向我的 python 脚本发送启动信号 脚本运行完成后 需要将一些内容发送回 plc 以启动下一阶段 哦 它必须在梯子上完成 有没有一种快速而肮脏的方式通过profibus发送东西 或
  • 如何在 Sublime Text 2 中删除包

    我想删除和 或停用EmmetSublime Text 2 中的包 我应该删除Emmet目录或删除包的典型工作流程是什么 If you installed with package control search for Package Con
  • 未找到符号,应位于:平面命名空间

    我有一个巨大的gl pxd包含所有定义的文件gl h glu h and glut h 例如它有这些行 cdef extern from