ノードのインストール: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

./configureインストールしたPythonを呼び出します(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.jsCentOS 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.jsCentOS 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
...
...

関連情報