在 Openshift 上使用 node-gyp 构建模块

2024-03-14

当尝试在 Openshift 上构建需要 Node-gyp 的模块(如 Node-canvas)时,我收到此错误:

> [email protected] /cdn-cgi/l/email-protection install /var/lib/.../repo/node_modules/canvas
> node-gyp rebuild

Traceback (most recent call last):
  File "/opt/rh/v8314/root/usr/bin/gyp", line 15, in <module>
    import gyp
ImportError: No module named gyp
gyp ERR! configure error 
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (/opt/rh/nodejs010/root/usr/lib/node_modules/node-gyp/lib/configure.js:343:16)
gyp ERR! stack     at ChildProcess.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:820:12)
gyp ERR! System Linux 2.6.32-504.16.2.el6.x86_64
gyp ERR! command "node" "/opt/rh/nodejs010/root/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /var/lib/.../repo/node_modules/canvas
gyp ERR! node -v v0.10.35
gyp ERR! node-gyp -v v1.0.2
gyp ERR! not ok 

npm ERR! [email protected] /cdn-cgi/l/email-protection install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] /cdn-cgi/l/email-protection install script.
npm ERR! This is most likely a problem with the canvas package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get their info via:
npm ERR!     npm owner ls canvas
npm ERR! There is likely additional logging output above.
npm ERR! System Linux 2.6.32-504.16.2.el6.x86_64
npm ERR! command "node" "/opt/rh/nodejs010/root/usr/bin/npm" "install" "node-canvas-1.2.3"
npm ERR! cwd /var/lib/.../app-root/runtime/repo
npm ERR! node -v v0.10.35
npm ERR! npm -v 1.4.28
npm ERR! code ELIFECYCLE
npm ERR! not ok code 0

我的理解是node-gyp正在导入未找到的gyp python模块。几周前,我通过将 PYTHONPATH 环境变量设置为 node_modules 目录(/var/lib/.../repo/node_modules/node-gyp/gyp/pylib)中的 gyp python 模块解决了这个问题。这样构建就成功完成了,我可以使用节点画布模块。现在我怀疑 Openshift 发生了一些变化,并且该技术不再起作用。即使设置了 PYTHONPATH,当我 npm install 模块时仍然找不到 gyp 模块。知道为什么即使 PYTHONPATH 设置为包含模块的位置也找不到 gyp 模块吗?也许它被忽略了? gyp 文件包含:

import sys

# TODO(mark): sys.path manipulation is some temporary testing stuff.
try:
  import gyp
except ImportError, e:
  import os.path
  sys.path.append(os.path.join(os.path.dirname(sys.argv[0]), 'pylib'))
  import gyp

if __name__ == '__main__':
  sys.exit(gyp.main(sys.argv[1:]))

看不到不使用 PYTHONPATH 的原因(并且无法检查 gyp 文件中的 PYTHONPATH 值,因为它需要 root 权限,而我认为我在 Openshift 上没有 root 权限)。也许 npm 正在以某种方式重置环境?


我通过直接调用 node-gyp 而不是通过 npm install 解决:

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

在 Openshift 上使用 node-gyp 构建模块 的相关文章

  • Sails.js - 如何更新嵌套模型

    attributes username type email validated by the ORM required true password type string required true profile firstname s
  • matplotlib 中的 R 风格数据轴缓冲区

    R 绘图自动设置 x 和 y 限制 以在数据和轴之间留出一些空间 我想知道 matplotlib 是否有办法自动执行相同的操作 如果没有 是否有一个好的公式或 经验法则 来说明 R 如何设置其轴限制 在 matplotlib 中 您可以通过
  • Python 的 mysqldb 晦涩文档

    Python 模块 mysqldb 中有许多转义函数 我不理解它们的文档 而且我努力查找它们也没有发现任何结果 gt gt gt print mysql escape doc escape obj dict escape any speci
  • IE8 和 9 上的 socket.io 问题

    Socket io 在除 IE8 和 9 之外的所有平台上都能完美运行 这是客户端要求 你们能帮忙解决这个问题吗 我一直在阅读所有类似的问题 但到目前为止我发现的大多数解决方案都无法解决 IE8 上的这个问题 这是结构 服务器端 var i
  • 对于相同的查询,MySQL Workbench 比 Python 快得多

    MySQL Workbench 中的以下查询需要 0 156 秒才能完成 SELECT date time minute price id FROM minute prices WHERE contract id 673 AND TIMES
  • NumPy 和 SciPy - .todense() 和 .toarray() 之间的区别

    我想知道使用是否有什么区别 优点 缺点 toarray vs todense 在稀疏 NumPy 数组上 例如 import scipy as sp import numpy as np sparse m sp sparse bsr mat
  • Tensorflow 不分配完整的 GPU 内存

    Tensorflow 默认分配所有 GPU 内存 但我的新设置实际上只有 9588 MiB 11264 MiB 我预计大约 11 000MiB 就像我的旧设置一样 张量流信息在这里 from tensorflow python client
  • 如何使用 PyMongo 在重复键错误后继续插入

    如果我需要在 MongoDB 中插入尚不存在的文档 db stock update one document set document upsert True 将完成这项工作 如果我错了 请随时纠正我 但是 如果我有一个文档列表并想将它们全
  • 在 Linux 上的 Python 中使用受密码保护的 Excel 工作表

    问题很简单 我每周都会收到一堆受密码保护的 Excel 文件 我必须解析它们并使用 Python 将某些部分写入新文件 我得到了文件的密码 当在 Windows 上完成此操作时 处理起来很简单 我只需导入 win32com 并使用 clie
  • Pandas groupby apply 执行缓慢

    我正在开发一个涉及大量数据的程序 我正在使用 python pandas 模块来查找数据中的错误 这通常工作得非常快 然而 我当前编写的这段代码似乎比应有的速度慢得多 我正在寻找一种方法来加快速度 为了让你们正确测试它 我上传了一段相当大的
  • 如何使用 Celery 多工作人员启用自动缩放?

    命令celery worker A proj autoscale 10 1 loglevel info启动具有自动缩放功能的工作人员 当创建多个工人时 me mypc projects x celery multi start mywork
  • 全局未在 ../node_modules/socket.io-parser/is-buffer.js 中定义

    预先感谢您帮助我 我正在尝试在我的一个角度组件中连接套接字 但在浏览器的控制台中它会抛出一个错误 指出 Global 未在 Object node modules socket io parser is buffer js 中定义 这是我的
  • 无法使用 webpack 加载 Node 原生插件

    虽然我正在使用vue cli在生成 webpack 配置的示例代码中 没有任何特定于 vue 的内容 我像这样创建示例应用程序 vue init webpack webpack modules example 生成webpack base
  • 具有多个主键的 SQLAlchemy 不会自动设置任何

    我有一个简单的表 class test Base tablename test id Column Integer primary key True title Column String def init self title self
  • 如何分析组合的 python 和 c 代码

    我有一个由多个 python 脚本组成的应用程序 其中一些脚本正在调用 C 代码 该应用程序现在的运行速度比以前慢得多 因此我想对其进行分析以查看问题所在 是否有工具 软件包或只是一种分析此类应用程序的方法 有一个工具可以将 python
  • 在python中读取PASCAL VOC注释

    我在 xml 文件中有注释 例如这个 它遵循 PASCAL VOC 约定
  • 在Python中连续解析文件

    我正在编写一个脚本 该脚本使用 HTTP 流量行解析文件 并取出域 目前仅将它们打印到屏幕上 我正在使用 httpry 将流量连续写入文件 这是我用来删除域名的脚本 usr bin python import re input open r
  • 沿轴 0 重复 scipy csr 稀疏矩阵

    我想重复 scipy csr 稀疏矩阵的行 但是当我尝试调用 numpy 的重复方法时 它只是将稀疏矩阵视为对象 并且只会将其作为 ndarray 中的对象重复 我浏览了文档 但找不到任何实用程序来重复 scipy csr 稀疏矩阵的行 我
  • 如何从 nltk 下载器中删除数据/模型?

    我在 python3 NLTK 中安装了一些 NLTK 包 通过nltk download 尝试过它们 但不需要它们 现在想删除它们 我怎样才能删除例如包large grammars来自我的 NLTK 安装 我不想删除完整的 NLTK 安装
  • Morgan Logger + Express.js:写入文件并在控制台中显示

    我正在尝试将 Morgan 与 Express js 结合使用来编写日志文件 同时也在控制台上显示我的日志 我正在使用这段代码 var logger require morgan var accessLogStream fs createW

随机推荐

  • Object.Create() 在幕后做什么?

    我正在深入研究 JavaScript 的原型继承 当使用 Object Create 创建对象时 有人可以展示幕后发生了什么吗 Object Create 是否依赖于幕后的 new 和构造函数 When Object create 用于创建
  • 为什么 C++ 隐式转换有效,但显式转换无效?

    以下代码在 C 11 中编译成功 include json hpp using json nlohmann json using namespace std int main json js asd string s1 js lt comp
  • 如何获取 firestore 文档中的字段?

    我正在开发一些与 Firestore 配合使用的云功能 我正在尝试获取特定文档的字段列表 例如 我有一个文档参考even data ref 但我不确定该文档是否包含我正在查看的字段 我想获取字段名称的列表 但我不知道该怎么做 我试图使用Ob
  • 使用目录树和过滤填充 TTreeView

    在 Lazarus 0 9 28 2 项目上我有一个TTreeView 与名字DirTree在我的表格上 frmConvert 但我想用所有目录树填充它 因为C 像这样 C 目录树 http i imagehost org 0185 cdi
  • 卷曲 IP 地址

    我需要发送一个带有用户 IP 地址而不是服务器 IP 地址的卷曲请求 我尝试了这个但没有运气 curl setopt ch CURLOPT INTERFACE ip 有任何想法吗 好吧 所以没有办法安全地欺骗curl请求的ip地址 但我发现
  • 2 的幂公式帮助

    我知道 Java 中的 2 i i i 1 1 可以让我找到一个数字是否是 2 的幂 但是有人可以解释为什么这样做吗 2 i i i 1 1 基本上 如果i是 2 的幂 它将有一个1在其位模式中 如果从中减去 1 则该值的所有低位1有点变成
  • LinkedIn 验证用户身份验证令牌服务器端

    经过一天的研究 我以以下问题结束 我正在使用 ember js 构建一个 Web 应用程序 目前我正在使用 linkedin javascript sdk 实现 LinkedIn 登录 我遇到的问题是 在收到用户信息 令牌 电子邮件 名字等
  • 为什么 SSLSocketFactory 缺少 setEnabledCipherSuites?

    SSLSocketFactory提供getDefaultCipherSuites 默认情况下在套接字上启用的密码 和getSupportedCipherSuites 如果需要 可以启用密码 然而 SSLSocketFactory不提供set
  • 迭代 MultiDict 中的键和所有值

    我有一本字典 params ImmutableMultiDict dataStore tardis symbol 1 symbol 2 我希望能够迭代字典并获取所有值及其键的列表 但是 当我尝试这样做时 它只获取第一个符号键值对并忽略另一个
  • 选择更改事件 - Html.DropDownListFor

    我有两个下拉列表 从第一个值中选择的值加载另一个值 当控制器中有辅助方法时 我该如何做到这一点 using Html BeginForm div table width 100 cellpadding 0 cellspacing 0 tr
  • 添加 BouncyCastle 提供程序会破坏 KeyStore.load()

    我使用以下命令生成了密钥库 keytool genkeypair keystore test ks storetype pkcs12 然后我运行以下测试 base64 代表我创建的密钥库 private static final Strin
  • 实例关闭时的 Spring Cloud Gateway 500

    我有一个使用Spring Cloud Load Balancer Spring Cloud版本 Hoxton SR6 的Spring Cloud Gateway eureka客户端 应用程序 并且我有一个Spring Boot应用程序的实例
  • std::to_string 线程安全吗?

    我正在寻找使用将整数类型转换为字符串std to string http en cppreference com w cpp string basic string to string 但我看到了这一段 std to string依靠std
  • 将中文文档拆分成句子[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我必须将中文文本分成多个句子 我尝试了斯坦福文档预处理器 它对于英语来说效果很好 但对于中文则不然 请
  • Java 说 FileNotFoundException 但文件存在

    我的计算机科学课程有一项作业 其中要求读取包含多个测试分数的文件 并要求我对它们进行求和并求平均值 虽然求和和求平均值很容易 但我在读取文件时遇到问题 老师说使用这个语法 Scanner scores new Scanner new Fil
  • 使用 POST 发送数据到 JSONP 请求

    概括 想要使用 POST 方法将数据发送到另一个域 JSONP Code http jsonp scope baseApiUrl QueryBuilder getData callback JSON CALLBACK success fun
  • 我可以在 MSBuild 文件中执行循环吗?

    目前 我让他遵循以下代码MSBuild项目文件 这真的很简单 定义4变量并为每个变量调用一次我的 MSBuild 任务 求代码
  • 画布默认尺寸

    Chrome 似乎将画布标签的默认宽度设置为 300px 当我希望画布默认为其包含的 div 的大小 其大小未指定 时 这有点麻烦 使用示例here http jsfiddle net ecTCD 1 我希望画布默认为标题的宽度并添加填充
  • string.GetHashCode() 唯一性和冲突

    给定两个不同的字符串 情况是否总是这样s GetHashCode s1 GetHashCode 是否存在不同整数的数量小于不同字符串的数量 No Just as a simple thought experiment How many st
  • 在 Openshift 上使用 node-gyp 构建模块

    当尝试在 Openshift 上构建需要 Node gyp 的模块 如 Node canvas 时 我收到此错误 gt email protected cdn cgi l email protection install var lib r