节点安装:没有名为 gyp.common 的模块

节点安装:没有名为 gyp.common 的模块

我尝试使用以下命令在 Windows XP 主机上的 CentOS 6.4 VirtualBox 来宾上安装 node.js:

cd /usr/local/src/
git clone git://github.com/joyent/node.git
cd node
./configure
make
make install

我只达到了./configure。当我执行时,./configure出现以下错误:

Traceback (most recent call last):
File "./configure", line 14, in
<module> from gyp.common import GetFlavor
ImportError: No module named gyp.common

答案1

你安装了什么版本的python。查看python -V

在运行之前./configure,请确保满足以下先决条件。

* GCC 4.2 or newer
* Python 2.6 or 2.7
* GNU Make 3.81 or newer
* libexecinfo (FreeBSD and OpenBSD only)

答案2

调用./configurePython,您已经安装了它(Traceback 消息来自正在运行的 Python)。

我刚刚做了一个新的 git checkout,它配置了 python 2.6 和 2.7。

./configure找不到的 是生成您的项目,它应该包含在 tools/gyp 目录中。如果这些文件不存在,git 可能会错过一个节奏。

gyp这也可能是由于 python 找到的模块与 Node.js 中提供的模块不同而导致的。检查你是否可以做到

$ python
>>> import gyp
>>> print gyp.__file__

如果您没有收到“ImportError”,则会显示 Python 实际导入的文件。

答案3

我认为您的克隆副本有问题,node.js或者您在 CentOS 6.4 机器上安装的软件包组合有问题。我这里有相同的发行版,我只是执行了与您相同的步骤并且它有效。

$ ./configure
{ 'target_defaults': { 'cflags': [],
                       'default_configuration': 'Release',
                       'defines': [],
                       'include_dirs': [],
                       'libraries': []},
  'variables': { 'clang': 0,
                 'gcc_version': 44,
                 'host_arch': 'x64',
                 'node_install_npm': 'true',
                 'node_prefix': '',
                 'node_shared_cares': 'false',
                 'node_shared_http_parser': 'false',
                 'node_shared_libuv': 'false',
                 'node_shared_openssl': 'false',
                 'node_shared_v8': 'false',
                 'node_shared_zlib': 'false',
                 'node_tag': '',
                 'node_unsafe_optimizations': 0,
                 'node_use_dtrace': 'false',
                 'node_use_etw': 'false',
                 'node_use_openssl': 'true',
                 'node_use_perfctr': 'false',
                 'node_use_systemtap': 'false',
                 'python': '/usr/bin/python',
                 'target_arch': 'x64',
                 'v8_enable_gdbjit': 0,
                 'v8_no_strict_aliasing': 1,
                 'v8_use_snapshot': 'true'}}
creating  ./config.gypi
creating  ./config.mk

gyp.common正如 @Anthon 建议的那样,我运行了以下命令,当我运行上述命令时,我什至没有安装 Python 包./configure,但它运行良好。

$ python
Python 2.6.6 (r266:84292, Feb 22 2013, 00:00:18) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import gyp
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named gyp

所以我不太确定你的环境发生了什么。我会进一步调试它,并查看您的变量$PATH$LD_LIBRARY_PATH环境变量,以确定您是否获得了您认为的 Python 版本。

解决方法

如果您不需要最新版本,node.js您可以从 CentOS 6.4 的 yum 存储库安装它。大多数 Node.js 工具集已在 EPEL 存储库中为您预先构建,默认情况下您应该拥有该存储库。因此,只需运行以下命令即可安装它:

$ sudo yum install nodejs

如果您搜索 ,则所有其他软件包都可用nodejs

$ yum search nodejs
Loaded plugins: fastestmirror, priorities, refresh-packagekit
Loading mirror speeds from cached hostfile
 * base: mirrors.liquidweb.com
 * epel: mirror.steadfast.net
 * extras: mirror.thelinuxfix.com
 * updates: centos.mbni.med.umich.edu
73 packages excluded due to repository priority protections
======================================================= N/S Matched: nodejs ========================================================
nodejs-burrito.noarch : Wrap up expressions with a trace function while walking the AST
nodejs-delayed-stream.noarch : Buffers events from a stream until you are ready to handle them
nodejs-npm-registry-client.noarch : Client for the npm registry
nodejs-options.noarch : Light-weight in-code option parser for nodejs
nodejs-osenv.noarch : Look up environment settings specific to different operating systems
...
...

相关内容