cython可以用icc编译吗?

2023-12-01

我正在尝试在 Ubuntu 14.04 上使用 icc 编译器从源代码构建 cython,因为我的 python 是使用 Intel icc 编译器编译的。

当我尝试使用安装 cython 时pip3 安装 cython然后运行 ​​cython 我收到以下错误

Traceback (most recent call last):
File "/usr/local/bin/cython", line 9, in <module>
load_entry_point('Cython==0.24', 'console_scripts', 'cython')()
File "/usr/lib/python3/dist-packages/pkg_resources.py", line 351, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/usr/lib/python3/dist-packages/pkg_resources.py", line 2363, in load_entry_point
return ep.load()
File "/usr/lib/python3/dist-packages/pkg_resources.py", line 2088, in load
entry = __import__(self.module_name, globals(),globals(), ['__name__'])
File "/usr/local/lib/python3.4/dist-packages/Cython/Compiler/Main.py", line 28, in <module>
from .Scanning import PyrexScanner, FileSourceDescriptor
ImportError: /usr/local/lib/python3.4/dist-packages/Cython/Compiler/Scanning.cpython-34m.so: undefined symbol: __intel_sse2_strchr 

如何使用 icc 编译器从源代码安装 cython ?

我尝试了这个但不起作用

从cython目录(从github下载)

python3.4 setup.py CC=icc

我收到以下消息 -

/home/aa/libPython/cython/Cython/Distutils/build_ext.py:20: UserWarning:    
Cython.Distutils.build_ext does not properly handle dependencies and is deprectated. Use Cython.Build.build_ext instead.
"Cython.Distutils.build_ext does not properly handle dependencies "
 Unable to find pgen, not compiling formal grammar.
 invalid command name 'CC=icc'

CC=icc用icc构建还不够。您还应该链接到 icc (https://stackoverflow.com/a/10891764/196561;icc 会将其内部库添加到 ELF 文件中),因此可能会找到 setup.py 的链接器变量的名称LD并将其也设置为iccLD=icc(默认可能是 gcc)。

其实是LINKCC - https://github.com/cython/cython/blob/970c2fc0e676ca22016e14147ada0edba937dc6b/Cython/Build/BuildExecutable.py

CC = get_config_var('CC', os.environ.get('CC', ''))
CFLAGS = get_config_var('CFLAGS') + ' ' + os.environ.get('CFLAGS', '')
LINKCC = get_config_var('LINKCC', os.environ.get('LINKCC', CC))

因此,使用 icc 正确构建 cython 应该是CC=icc LINKCC=icc,不知道变量应该如何传递到setup.py中,检查一下如何告诉 distutils 使用 gcc? or try

CC=icc LINKCC=icc python3.4 setup.py

更新:根据 gansub 的消息,“LDSHARED=icc" env.variable 将有助于构建 cython: "您需要设置环境变量 LDSHARED=icc" -https://chat.stackoverflow.com/transcript/message/31231907#31231907 and https://stackoverflow.com/a/37914227

Syrtis Major 的更新:有文章“Cython* 中的线程并行性”https://software.intel.com/en-us/articles/thread-parallelism-in-cython作者:Nguyen, Loc Q(英特尔),2016 年 12 月 15 日,推荐:LDSHARED="icc -shared" CC=icc:

要显式使用 Intel icc 编译此应用程序,请使用以下命令执行 setup.py 文件:

 $ LDSHARED="icc -shared" CC=icc python setup.py build_ext --inplace
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

cython可以用icc编译吗? 的相关文章

随机推荐

  • AutoCompleteTextView 未从 Google Places API 获取建议

    这是我从 Google Places API 获取地点建议的代码 但它显示一些错误 例如 无法连接到 Google Places API 我已经给出了在这段代码的底部得到的正确错误 我只需要一个 AutoCompleteTextView 来
  • 是否可以在 java (log4j) 中记录方法调用?

    是否可以在 log4j Java 中记录任何方法调用 Thanks 不 如果不编辑调用站点或方法本身就不行 我认为您所追求的是面向方面的编程 看一下AspectJ例如
  • 使用 Nodejs 实时抓取聊天记录

    我想做的是建立一个scrapingNodeJs 上的应用程序 它可以实时监控聊天并将某些消息存储在任何数据库中 我想做的是以下内容 我想从聊天平台流中捕获数据 从而捕获一些有用的信息来帮助那些正在做流媒体服务的人 但我不知道如何开始使用 N
  • Python unicode 解码错误 SUD

    好的 我有 coding utf 8 在我的脚本的顶部 它可以从数据库中提取数据 其中包含有趣的字符 并将该数据存储到变量中 但是我遇到其他问题 请参阅我提取数据 组织它 然后将其转储到变量中 如下所示 title product 1 Wh
  • 通过 Web 应用程序启动 Spark 应用程序的最佳实践?

    我想通过 Web 应用程序向用户公开我的 Spark 应用程序 基本上 用户可以决定他想要运行哪个操作并输入一些变量 这些变量需要传递到 Spark 应用程序 例如 用户输入几个字段 然后单击一个按钮 该按钮执行以下 运行火花应用1带参数
  • `eli5.show_weights` 显示的标准差与 `feature_importances_std_` 中的值不一致

    The PermutationImportance对象有一些很好的属性 例如feature importances and feature importances std 为了以 HTML 样式可视化此属性 我使用了eli5 show we
  • THREE.js 动态添加点到 Points 几何体不渲染

    我正在使用 Three js r83 我试图动态地将点添加到几何体中 但场景永远不会更新 这有效 var tmaterial new THREE PointsMaterial color 0xff0000 size 5 opacity 1
  • 设计问题:std::map的线程安全

    我正在使用 std map 来实现我的本地哈希表 该哈希表将同时被多个线程访问 我做了一些研究 发现 std map 不是线程安全的 所以我将使用互斥体在地图上进行插入和删除操作 我计划有单独的互斥锁 每个映射条目都有一个互斥锁 以便可以独
  • C++ 数组:为什么 delete[] 不起作用? [复制]

    这个问题在这里已经有答案了 当我运行以下代码时 include
  • 确定 2 个列表是否具有相同的元素,无论顺序如何? [复制]

    这个问题在这里已经有答案了 抱歉这个简单的问题 但我很难找到答案 当我比较两个列表时 我想知道它们是否 相等 因为它们具有相同的内容 但顺序不同 Ex x a b y b a I want x y评估为True 您可以简单地检查包含 x 和
  • 通过查询参数选择 Jersey 方法

    我需要实现一个使用第一个查询参数来识别操作的网络服务 即客户端调用将类似于 http localhost 8080 ws operation info or http localhost 8080 ws operation create n
  • RDS数据库的本地副本

    在过去一个小时左右的时间里 我一直在进行一些研究 并且听到了一些有关 Amazon RDS 数据库复制的相互矛盾的信息 我的数据库相当大 有 15 个表 总大小为 4 GB 那么 基本上 我是否可以创建远程 RDS InnoDB 的本地副本
  • 常驻后端 Google App Engine“/_ah/background”(Python)

    有人可以帮我理解谷歌应用程序引擎 Python 中的 ah background 是什么吗 我有一个正在运行的常驻后端 并且我看到向该端点发出的请求 它们似乎是由我的代码之外的某些东西生成的 它们似乎也由我的 ah start 处理程序处理
  • 为什么将 0.1f 更改为 0 会使性能降低 10 倍?

    为什么这段代码 const float x 16 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5 2 6 const float z 16 1 123 1 234 1
  • 如何使用 DefaultEditor 方法检查 JSpinner 字段上的手动编辑

    我正在从这里调整代码 JTextField 的值更改侦听器 EDIT 2 当我按下向上微调箭头时 以下代码会出现无限循环的对话框 细绳 字符串 10 值 10 细绳 字符串 10 值 10 细绳 字符串 10 值 10 警告您需要使用任务管
  • Alamofire自定义参数

    我正在尝试将这个curl 调用转换为Swift 中的Alamofire curl X POST https content dropboxapi com 2 files download header Authorization Beare
  • 如何在 T-SQL 中获取版本号 (varchar) 列的最大值

    我有一个这样定义的表 Column Version Message Type varchar 20 varchar 100 Row 1 2 2 6 Message 1 Row 2 2 2 7 Message 2 Row 3 2 2 12 M
  • 如何在mvc中的jquery中使用@符号

    我正在尝试在 if 条件下在 javascript 中使用 符号 但它向我显示了一个错误 if password match alert yes strength 1 It is Showing me this error 您可以输入两次
  • 在 Windows 中为 Python 设置 Pocketsphinx

    有人可以帮助我在 Windows 中构建 pocketsphinx 语音识别吗 我在理解 sphinx 中提供的指令时遇到困难page 我想开发一个语音控制的计算机自动化应用程序 我正在使用 Python 我不知道如何安装sphinx 以便
  • cython可以用icc编译吗?

    我正在尝试在 Ubuntu 14 04 上使用 icc 编译器从源代码构建 cython 因为我的 python 是使用 Intel icc 编译器编译的 当我尝试使用安装 cython 时pip3 安装 cython然后运行 cython