NodeJS - Lỗi cài đặt với NPM


197
Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.

C:\Windows\system32>npm install caress-server
npm http GET https://registry.npmjs.org/caress-server
npm http 304 https://registry.npmjs.org/caress-server
npm http GET https://registry.npmjs.org/jspack/0.0.1
npm http GET https://registry.npmjs.org/buffertools
npm http 304 https://registry.npmjs.org/jspack/0.0.1
npm http 304 https://registry.npmjs.org/buffertools

> buffertools@2.0.1 install C:\Windows\system32\node_modules\caress-server\node_
modules\buffertools
> node-gyp rebuild


C:\Windows\system32\node_modules\caress-server\node_modules\buffertools>node "G:
\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-
gyp.js" rebuild
gyp ERR! configure error
gyp ERR! stack Error: Can't find Python executable "python", you can set the PYT
HON env variable.
gyp ERR! stack     at failNoPython (G:\nodejs\node_modules\npm\node_modules\node
-gyp\lib\configure.js:101:14)
gyp ERR! stack     at G:\nodejs\node_modules\npm\node_modules\node-gyp\lib\confi
gure.js:64:11
gyp ERR! stack     at Object.oncomplete (fs.js:107:15)
gyp ERR! System Windows_NT 6.2.9200
gyp ERR! command "node" "G:\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\
bin\\node-gyp.js" "rebuild"
gyp ERR! cwd C:\Windows\system32\node_modules\caress-server\node_modules\buffert
ools
gyp ERR! node -v v0.10.25
gyp ERR! node-gyp -v v0.12.2
gyp ERR! not ok
npm ERR! buffertools@2.0.1 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the buffertools@2.0.1 install script.
npm ERR! This is most likely a problem with the buffertools 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 buffertools
npm ERR! There is likely additional logging output above.

npm ERR! System Windows_NT 6.2.9200
npm ERR! command "G:\\nodejs\\\\node.exe" "G:\\nodejs\\node_modules\\npm\\bin\\n
pm-cli.js" "install" "caress-server"
npm ERR! cwd C:\Windows\system32
npm ERR! node -v v0.10.25
npm ERR! npm -v 1.3.24
npm ERR! code ELIFECYCLE
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     C:\Windows\system32\npm-debug.log
npm ERR! not ok code 0

C:\Windows\system32>

Tôi đang cài đặt một tập lệnh NodeJS nhất định - Caress . Nhưng tôi không thể. Tôi đang sử dụng Windows 8.1, bất cứ ai cũng có thể cho tôi biết vấn đề tôi đang gặp phải là gì và tại sao cài đặt này không hoạt động. Dường như có một vấn đề với sự phụ thuộc của buffertools, đó là những gì tôi có thể nghĩ. Không biết làm thế nào có thể sửa lỗi này?

Nếu tôi tải xuống bản dựng từ github và đặt nó trong các mô-đun nút, dường như không có gì hoạt động. khi tôi cố gắng bắt đầu, sử dụng npm start hoặc trong khi thực hiện.

G:\nodejs\node_modules\caress-server>npm install

G:\nodejs\node_modules\caress-server>npm start

> caress-server@0.1.1 start G:\nodejs\node_modules\caress-server
> node examples/server.js

   info  - socket.io started

module.js:340
    throw err;
          ^
Error: Cannot find module './build/Release/buffertools.node'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (G:\nodejs\node_modules\caress-server\node_modules\buf
fertools\buffertools.js:16:19)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)

npm ERR! caress-server@0.1.1 start: `node examples/server.js`
npm ERR! Exit status 8
npm ERR!
npm ERR! Failed at the caress-server@0.1.1 start script.
npm ERR! This is most likely a problem with the caress-server package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node examples/server.js
npm ERR! You can get their info via:
npm ERR!     npm owner ls caress-server
npm ERR! There is likely additional logging output above.
npm ERR! System Windows_NT 6.2.9200
npm ERR! command "G:\\nodejs\\\\node.exe" "G:\\nodejs\\node_modules\\npm\\bin\\n
pm-cli.js" "start"
npm ERR! cwd G:\nodejs\node_modules\caress-server
npm ERR! node -v v0.10.25
npm ERR! npm -v 1.3.24
npm ERR! code ELIFECYCLE
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     G:\nodejs\node_modules\caress-server\npm-debug.log
npm ERR! not ok code 0

G:\nodejs\node_modules\caress-server>

biến env không được đặt. DSnt làm việc với điều đó hoặc. pastebin.com/jBXwi63a
Shaurya Chaudhuri

Câu trả lời:


365
Như đã nhận xét bên dưới, bạn có thể không cần cài đặt VS trên windows, hãy kiểm tra điều này

https://github.com/nodejs/node-gyp/issues/629#issuecomment-153196245

CẬP NHẬT 02/2016

Một số plugin npm cần node-gypđược cài đặt.

Tuy nhiên, node-gypcó phụ thuộc riêng của nó ( từ trang github ):

nhập mô tả hình ảnh ở đây

CẬP NHẬT 09/2016

Nếu bạn đang sử dụng Windows, giờ đây bạn có thể cài đặt tất cả các node-gypphụ thuộc bằng một lệnh (LƯU Ý: Chạy với tư cách Quản trị viên trong Windows PowerShell):

 $ npm install --global --production windows-build-tools

và sau đó cài đặt gói

 $ npm install --global node-gyp

CẬP NHẬT 06/2018

https://github.com/nodejs/node-gyp/issues/809#issuecomment-155019383

Xóa thư mục $ HOME / .node-gyp của bạn và thử lại.

Xem tài liệu đầy đủ ở đây: node-gyp


Vì vậy, khi tôi cài đặt nó trên một hộp linux. Tôi làm gì thay cho ms vc ++? Và tôi nhận được điều này khi tôi đã làm tất cả những điều bạn đề cập. - pastebin.com/LgJEKFFS
Shaurya Chaudhuri

Một công cụ biên dịch C / C ++ thích hợp, như GCC:sudo apt-get install g++
Ilan Frumer

1
@IlanFrumer oh Tôi thích Linux bất cứ lúc nào, nhưng đôi khi tôi phải cài đặt ứng dụng trên máy chủ của khách hàng ..
Spock

4
Điều này sẽ không được giải quyết bằng cách cài đặt trình biên dịch C ++ không phụ thuộc vào VS? Là một điều như vậy không thể tìm thấy? Tôi bối rối.
jcollum

1
Cảm ơn các bạn đã ủng hộ, làm việc cho tôi. Chỉ là một mẹo: chạy với tư cách quản trị viên trong windows
MuriloMittmann

16

Đảm bảo bạn có tất cả các phần mềm cần thiết để chạy node-gyp:

Bạn có thể định cấu hình phiên bản Visual Studio được sử dụng node-gypthông qua một biến môi trường để bạn có thể tránh phải đặt thuộc --msvs_version=2012tính mỗi khi bạn cài đặt npm.

Ví dụ:

  • thiết lập GYP_MSVS_VERSION=2012cho Visual Studio 2012
  • được đặt GYP_MSVS_VERSION=2013e('e' là viết tắt của 'phiên bản thể hiện' MIỄN PHÍ)

Để biết danh sách đầy đủ, hãy xem - https://github.com/joyent/node/blob/v0.10.29/tools/gyp/pylib/gyp/MSVSVersion.py#L209-294

Điều này vẫn còn đau đối với người dùng Windows của NodeJS vì nó giả định rằng bạn đã cài đặt Visual Studio và nhiều người dùng cuối sẽ không bao giờ có điều này. Vì vậy, tôi đang vận động Joyent để khuyến khích họ bao gồm các ổ cắm web như một phần của nút CORE và cũng có thể gửi trình biên dịch GNU gcc như một phần của cài đặt NodeJS để chúng tôi có thể khắc phục vấn đề này vĩnh viễn.

Vui lòng thêm phiếu bầu của bạn tại:


4
Tôi vừa (cuối cùng) đã làm việc với phiên bản Cộng đồng VS 2015. Tôi đang ở trên Window 10, 64 bit. Tôi đã sử dụng "npm config set msvs_version 2015 -g" trong dấu nhắc lệnh (dĩ nhiên sau khi cài đặt VS). Hầu hết mọi người rơi vào vấn đề này theo thời gian đã đề xuất VS2010, hoặc đôi khi đến năm 2013, nhưng tôi đã giải quyết ít nhất vấn đề nút-gyp hiện tại của mình với VS2015. Tôi đã phải "npm install -g sigmund" và cũng tự cài đặt "lru-cache" từ Github. Vấn đề ban đầu là đã cài đặt "Utf-8-Validate", như một phần phụ thuộc của mẫu Aurelia.
Mathieu Leblanc

10

Tôi gặp phải vấn đề với lỗi:

gyp ERR! configure error

gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable.

Đây là những gì tôi đã làm và những gì cuối cùng đã làm việc.

Tuyên bố miễn trừ trách nhiệm : Tôi mới bắt tay vào Node, Angular sau nhiều năm ở thế giới Java, Linux trong số những người khác ...

Mô tả môi trường : Windows 8.1 64-bit; Cygwin; vỏ bash

Lệnh được sử dụng dẫn đến lỗi : npm install -g karma

Lỗi : gyp ERR! cấu hình lỗi gyp ERR! Lỗi stack: Không thể tìm thấy "python" thực thi Python, bạn có thể đặt biến env PYT HON.

Khám phá : 'mà python' trên bash shell hiển thị rõ ràng '/ usr / bin / python'. Bây giờ thật khó chịu!

Giải pháp : Điều này chỉ áp dụng cho những người sử dụng môi trường tương tự như những gì tôi có, tức là sử dụng cygwin và bash shell. Hy vọng nó cũng có ích trong các môi trường khác nhưng hãy nhớ rằng ấm trà của bạn có thể trông hơi khác so với của tôi.

  1. Đầu tiên, cần đặt biến env $ PYTHON shell trong .bashrc bằng cách sử dụng đường dẫn cửa sổ rõ ràng để thực thi python chứ không phải unix như đường dẫn gốc (/ usr / bin) được sử dụng bởi cygwin.
  2. Thứ hai, và cái này mất rất nhiều thử nghiệm / lỗi và đây là gotcha! Cygwin cài đặt python dưới / usr / bin (thực sự là một bản sao của / bin trên windows) với phiên bản, tức là (trong hệ thống của tôi) /usr/bin/python2.7.exe và sau đó thêm liên kết / usr / bin / trăn -> python2.7.exe. Vấn đề là gyp không thể theo liên kết này và liên tục đưa ra lỗi gây phiền nhiễu rằng nó không thể tìm thấy python mặc dù bạn có thể tìm thấy nó tốt từ dòng lệnh shell.
  3. Với nền trên bây giờ, thêm dòng sau vào .bashrc của bạn

export PYTHON = "C: /cygwin64/bin/python2.7.exe (hoặc bất cứ phiên bản nào trên hệ thống của bạn)"

  1. Bây giờ, nguồn .bashrc của bạn từ thư mục chính của bạn (trên cygwin) -> 'source .bashrc'

Bây giờ bạn sẽ ổn và gyp sẽ tìm thấy python thực thi.

Tôi hy vọng điều này sẽ giúp ai đó vấp phải vấn đề tương tự hoặc tương tự.


Đây là những gì đã giải quyết vấn đề của tôi khi sử dụng GitBash 2.6.3 trên Windows
Scott Offen

3

sẽ có thể nhận được tất cả các phụ thuộc nút-gyp với chocolatey cho Windows

choco install python2
choco install visualstudioexpress2013windowsdesktop

2

Thiết lập môi trường JavaScript

1. Cài đặt Node.js

Tải xuống trình cài đặt tại trang web NodeJs. Bạn có thể tải về động cơ V6 mới nhất

2. Cập nhật Npm

Npm được cài đặt cùng với Node.js. Vì vậy, đừng lo lắng.

3. Cài đặt Anaconda

Anaconda là nền tảng khoa học dữ liệu mở hàng đầu được cung cấp bởi Python. Phiên bản mã nguồn mở của Anaconda là một bản phân phối hiệu suất cao của Python. Nó có thể giúp bạn quản lý sự phụ thuộc python của bạn. Bạn có thể sử dụng nó để tạo môi trường python khác nhau trong tương lai nếu bạn muốn chạm vào nó.

Node-gyp chỉ hỗ trợ> = Python 2.7 và <Python 3.0

Vì vậy, chỉ cần cài đặt phiên bản 2.7

4. Cài đặt Node-gyp

Bạn có thể cài đặt với  npm:

$ npm install -g node-gyp

Bạn cũng sẽ cần phải cài đặt:

  • Trên Windows:

    • Tùy chọn 1: Cài đặt tất cả các công cụ và cấu hình được yêu cầu bằng cách sử dụng các công cụ xây dựng windows của Microsoft   bằng cách sử dụng  npm install --global --production windows-build-tools từ PowerShell hoặc CMD.exe nâng cao (chạy với tư cách Quản trị viên).

    • Tùy chọn 2: Cài đặt công cụ và cấu hình thủ công:

    • Visual C ++ Xây dựng môi trường:

      • Tùy chọn 1: Cài đặt  Visual C ++ Build Tools  bằng   tùy chọn Cài đặt mặc định .
      • Tùy chọn 2: Cài đặt  Visual Studio 2015  (hoặc sửa đổi cài đặt hiện có) và chọn  Công cụ chung cho Visual C ++  trong khi thiết lập. Điều này cũng hoạt động với các phiên bản Cộng đồng và Express cho Máy tính để bàn miễn phí.

      [Chỉ dành cho Windows Vista / 7] yêu cầu  .NET Framework 4.5.1

    • Khởi chạy cmd, npm config set msvs_version 2015

    Nếu các bước trên không phù hợp với bạn, vui lòng truy cập  Nguyên tắc Node.js của Windows  cho Windows để biết thêm mẹo.

Nếu bạn đã cài đặt nhiều phiên bản Python, bạn có thể xác định phiên bản Python nào  node-gyp sử dụng bằng cách đặt biến '--python':

$ node-gyp --python C:/Anaconda2/python.exe

Nếu  node-gyp được gọi bằng cách  npm   bạn đã cài đặt nhiều phiên bản Python, thì bạn có thể đặt  npmkhóa cấu hình 'python' thành giá trị phù hợp:

$ npm config set python C:/Anaconda2/python.exe

Cập nhật trong tương lai cho Node.js và npm

Tải về trình cài đặt từ trang web chính thức của họ và cài đặt trực tiếp. Trình cài đặt sẽ tự động giúp bạn loại bỏ các tập tin cũ.

npm update npm

Cập nhật trong tương lai cho Python

conda update --all


1

Đối với người dùng Cygwin:

Vấn đề python với việc sử dụng npm trên bản cài đặt Cygwin ngoài luồng, đó node-gyplỗi gây ra do kiểm tra ../npm/node_modules/node-gyp/lib/configure.jsmã không đầy đủ .

Đó là do cách Cygwin xử lý các liên kết tượng trưng. Nó không làm điều đó đúng trong một cài đặt bên ngoài hộp. Vì vậy, các thông báo lỗi từ đoạn mã trên trở nên sai lệch, vì nó phàn nàn về PYTHONđường dẫn chứ không phải sự tồn tại của python.exe(hoặc liên kết của) tệp.

Có (ít nhất) 2 cách để giải quyết vấn đề này.

  1. Cài đặt gói Cygwin cygutils-extra và sử dụng winln.
  2. Sử dụng Windows CMD gốc trong chế độ Quản trị viên.

Cho ( 1 ) bạn có thể tạo một liên kết tượng trưng thích hợp từ bên trong vỏ Cygwin bằng cách thực hiện các bước sau:

# To make the Cygwin environment treat Windows links properly: 
# Alternatively add this to your `.bashrc` for permanent use.
export CYGWIN=winsymlinks:nativestrict

# Install Cygwin package containing "winln"
apt-cyg install cygutils-extra

# Make a proper Windows sym-link:
cd /cygdrive/c/cygwin64/bin/
winln.exe -s python2.7.exe python.exe

# Add PYTHON as a native Windows system wide variable (HKLM) 
setx /M PYTHON "C:\cygwin64\bin\python"

(Cũng giả sử bạn đang chạy shell Cygwin với tư cách Quản trị viên.) Sử dụng apt-cyg được khuyến nghị và có thể được tìm thấy dưới nhiều hình thức khác nhau trên github.


Cho ( 2 ) độ phân giải cho người dùng Cygwin ngoài luồng là:

# Open a native Windows CMD in Administrator mode and:
cd C:\cygwin64\bin\
mklink python.exe python2.7.exe

Kết quả sẽ như thế này:

C:\cygwin64\bin>ls -al python*
lrwxrwxrwx 1 xxx            xxx   13 Jun  2  2015 python -> python2.7.exe
lrwxrwxrwx 1 Administrators xxx   13 Aug 24 17:28 python.exe -> python2.7.exe
lrwxrwxrwx 1 xxx            xxx   13 Jun  2  2015 python2 -> python2.7.exe
-rwxr-xr-x 1 xxx            xxx 9235 Jun  2  2015 python2.7.exe

1

Cho cửa sổ

Kiểm tra đường dẫn python trong biến hệ thống. Các plugin npm cần cài đặt nút-gyp.

mở dấu nhắc lệnh với quyền quản trị và chạy lệnh sau.

cài đặt npm --global - sản xuất windows-build-tools

cài đặt npm - nút nút-gyp


0

gyp ERR! cấu hình lỗi gyp ERR! Lỗi stack: Không thể tìm thấy "python" thực thi Python, bạn có thể đặt biến env PYT HON.

Điều này có nghĩa là env Python. biến nên trỏ đến tệp python thực thi, trong trường hợp của tôi: SET PYTHON=C:\work\_env\Python27\python.exe


0

Đối với tôi, giải pháp là:

rm -rf  ~/.node_gyp and
sudo npm install -g node-gyp@3.4.0
cd /usr/local/lib sudo ln -s ../../lib/libSystem.B.dylib libgcc_s.10.5.dylib 
brew install gcc
npm install


0

Câu hỏi đã được trả lời nhưng chúng không hoạt động trong trường hợp của tôi, đó là hệ điều hành dựa trên Linux, vì vậy có lẽ điều này sẽ giúp người khác.

Tôi cũng bị lỗi tương tự

gyp ERR! configure error 
gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable.

Vì vậy, sửa lỗi bằng một dòng duy nhất chỉ cần thêm điều này nếu bạn đang làm việc trong Dockerfile hoặc cài đặt nó trong HĐH

apk add --no-cache python nodejs

trong Ubuntu

sudo apt-get install python3.6

Lưu ý: Phiên bản nút: 8


0

cài đặt trình biên dịch nút-gyp và c ++ (gcc-c ++).


Bạn có thể giải thích làm thế nào đây là một câu trả lời tốt hơn so với 11 câu hỏi khác đã ở đây?
Stephen Rauch

Xin chào Stephan, chắc chắn nó không phải là cái tốt hơn, nhưng vâng trong một bước tối thiểu phù hợp với tôi.
brajesh jaishwal

0

Đã sửa lỗi hạ cấp Node từ v12.8.1 xuống v11.15.0 và mọi thứ đã được cài đặt thành công

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.