노드 설치: 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
...
...

관련 정보