NodeJS - ข้อผิดพลาดในการติดตั้งด้วย 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>

ผมติดตั้งสคริปต์ NodeJS บางอย่าง - ความรัก แต่ฉันไม่สามารถที่จะ ฉันใช้ Windows 8.1 ทุกคนสามารถบอกได้ว่าปัญหาที่ฉันกำลังเผชิญอยู่คืออะไรและทำไมการติดตั้งนี้จึงไม่ทำงาน ดูเหมือนจะมีปัญหากับการพึ่งพา buffertools นั่นเป็นสิ่งที่ฉันคิดได้ ไม่รู้วิธีแก้ปัญหานี้ไหม

หากฉันดาวน์โหลดบิลด์จาก github และวางไว้ในโหนดโมดูลดูเหมือนว่าจะไม่มีอะไรทำงาน เมื่อฉันพยายามเริ่มใช้ npm start หรือระหว่างการใช้งาน

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>

ตัวแปร env ไม่ได้ถูกตั้งค่า dsnt ทำงานกับทั้ง pastebin.com/jBXwi63a
Shaurya Chaudhuri

คำตอบ:


365
ตามที่แสดงความคิดเห็นด้านล่างคุณอาจไม่จำเป็นต้องติดตั้ง VS บน windows ลองดูสิ

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

อัปเดตเมื่อวันที่ 02/2016

จำเป็นต้องnode-gypติดตั้งปลั๊กอิน npm บางตัว

อย่างไรก็ตามnode-gypมีการอ้างอิงของตัวเอง ( จากหน้า GitHub ):

ป้อนคำอธิบายรูปภาพที่นี่

ปรับปรุง 09/2016

หากคุณใช้ Windows คุณสามารถติดตั้งได้ทั้งหมด node-gypพึ่งพาด้วยคำสั่งเดียว (หมายเหตุ: เรียกใช้ในฐานะผู้ดูแลระบบใน Windows PowerShell):

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

จากนั้นติดตั้งแพคเกจ

 $ npm install --global node-gyp

ปรับปรุง 06/2018

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

ลบไดเร็กทอรี $ HOME / .node-gyp ของคุณแล้วลองอีกครั้ง

ดูเอกสารฉบับเต็มได้ที่นี่: node-gyp


ดังนั้นเมื่อฉันติดตั้งบนกล่องลินุกซ์ ฉันจะทำอะไรแทน ms vc ++ และฉันได้สิ่งนี้เมื่อฉันทำทุกสิ่งที่คุณพูดถึง - pastebin.com/LgJEKFFS
Shaurya Chaudhuri

เครื่องบินลำเลียง C ที่เหมาะสม / C ++ คอมไพเลอร์ toolchain เช่น GCC:sudo apt-get install g++
Ilan Frumer

1
@IlanFrumer โอ้ฉันชอบลินุกซ์เวลาใด ๆ แต่บางครั้งฉันมีการติดตั้งโปรแกรมบนเซิร์ฟเวอร์ของลูกค้า ..
สป็อค

4
สิ่งนี้จะไม่ได้รับการแก้ไขหรือไม่โดยการติดตั้งตัวแปลภาษา C ++ แบบไม่ขึ้นกับ VS เป็นสิ่งที่หาไม่ได้เหรอ? ฉันสับสน
jcollum

1
ขอบคุณสำหรับการสนับสนุนพวกทำงานสำหรับฉัน เพียงคำแนะนำ: ทำงานเป็นผู้ดูแลระบบใน windows
MuriloMittmann

16

ตรวจสอบให้แน่ใจว่าคุณมีซอฟต์แวร์ที่จำเป็นทั้งหมดในการทำงานnode-gyp:

คุณสามารถกำหนดค่ารุ่นของ Visual Studio ที่ใช้โดยnode-gypผ่านตัวแปรสภาพแวดล้อมเพื่อให้คุณสามารถหลีกเลี่ยงการตั้งค่า--msvs_version=2012คุณสมบัติทุกครั้งที่คุณทำการติดตั้ง npm

ตัวอย่าง:

  • ชุด GYP_MSVS_VERSION=2012สำหรับ Visual Studio 2012
  • set GYP_MSVS_VERSION=2013e('e' ย่อมาจาก 'ด่วน' ฟรี)

สำหรับรายการทั้งหมดดู - https://github.com/joyent/node/blob/v0.10.29/tools/gyp/pylib/gyp/MSVSVersion.py#L209-294

สิ่งนี้ยังคงเจ็บปวดสำหรับผู้ใช้ Windows ของ NodeJS เนื่องจากถือว่าคุณมีสำเนาของ Visual Studio ที่ติดตั้งและผู้ใช้ปลายทางจำนวนมากจะไม่มีสิ่งนี้ ดังนั้นฉันจึงชักชวนให้ Joyent สนับสนุนให้พวกเขารวมซ็อกเก็ตเว็บไว้เป็นส่วนหนึ่งของโหนด CORE และเพื่อให้สามารถส่งคอมไพเลอร์ GNU gcc เป็นส่วนหนึ่งของการติดตั้ง NodeJS เพื่อให้เราสามารถแก้ไขปัญหานี้ได้อย่างถาวร

คุณสามารถเพิ่มคะแนนของคุณได้ที่:


4
ฉันเพิ่ง (ในที่สุด) มันทำงานกับรุ่นชุมชน VS 2015 ฉันอยู่บน Window 10, 64 bits ฉันใช้ "npm config set msvs_version 2015 -g" ใน command prompt (หลังการติดตั้ง VS แน่นอน) คนส่วนใหญ่ที่พบปัญหานี้ในช่วงเวลาหนึ่งได้แนะนำ VS2010 หรือบางครั้งจนถึงปี 2013 แต่ฉันแก้ไขอย่างน้อยปัญหา node-gyp ปัจจุบันของฉันกับ VS2015 ฉันต้อง "npm install -g sigmund" และติดตั้งด้วยตนเอง "lru-cache" จาก Github ด้วย ปัญหาดั้งเดิมคือต้องมีการติดตั้ง "Utf-8-Validate" เป็นการอ้างอิงจากตัวอย่าง Aurelia
Mathieu Leblanc

10

ฉันพบปัญหากับข้อผิดพลาด:

gyp ERR! configure error

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

นี่คือสิ่งที่ฉันกำลังทำและสิ่งที่ได้ผลในที่สุด

คำปฏิเสธ : ฉันเพิ่งเข้ามาใน Node, Angular หลังจากหลายปีใน Java, Linux และอื่น ๆ ...

คำอธิบายสภาพแวดล้อม : Windows 8.1 64-bit; Cygwin; เปลือกทุบ cygwin

คำสั่งที่ใช้ซึ่งนำไปสู่ข้อผิดพลาด : npm install -g karma

ข้อผิดพลาด : gyp ERR! กำหนดค่าข้อผิดพลาด gyp ERR! ข้อผิดพลาดของกองซ้อน: ไม่พบ Python ที่สามารถใช้งานได้ "python" คุณสามารถตั้งค่าตัวแปร PYT HON ​​env

การค้นพบ : 'ไพ ธ อนใดบนเชลล์ bash แสดง' / usr / bin / python 'อย่างชัดเจน ตอนนี้มันน่ารำคาญแล้ว!

วิธีแก้ปัญหา : สิ่งนี้ใช้ได้เฉพาะกับผู้ที่ใช้สภาพแวดล้อมที่คล้ายกับสิ่งที่ฉันมีเช่นใช้ cygwin และ bash shell หวังว่ามันจะช่วยในสภาพแวดล้อมอื่นเช่นกัน แต่โปรดจำไว้ว่ากาน้ำชาของคุณอาจดูแตกต่างจากของฉันเล็กน้อย

  1. ประการแรกจำเป็นต้องตั้งค่าตัวแปร $ PYTHON เชลล์ env ใน. bashrc โดยใช้เส้นทางของ windows อย่างชัดเจนไปยัง python ที่สามารถเรียกทำงานได้และไม่ใช่ unix เช่น root path (/ usr / bin) ที่ cygwin ใช้
  2. ประการที่สองและอันนี้มีการทดลอง / ข้อผิดพลาดมากมายและนี่คือ gotcha! Cygwin ติดตั้งไพ ธ อนภายใต้ / usr / bin (ซึ่งเป็นมิรเรอร์ของ / bin บน windows) ด้วยเวอร์ชันเช่น (ในระบบของฉัน) /usr/bin/python2.7.exe จากนั้นเพิ่มลิงค์ / usr / bin / python -> python2.7.exe ปัญหาคือ gyp ไม่สามารถไปตามลิงค์นี้และให้ข้อผิดพลาดที่น่ารำคาญที่ไม่พบ python แม้ว่าคุณจะพบว่ามันดีจากบรรทัดคำสั่ง shell
  3. ด้วยพื้นหลังด้านบนตอนนี้เพิ่มบรรทัดต่อไปนี้เพื่อ. bashrc ของคุณ

ส่งออก PYTHON = "C: /cygwin64/bin/python2.7.exe (หรือรุ่นใด ๆ ในระบบของคุณ)"

  1. ตอนนี้แหล่ง. bashrc ของคุณจากไดเรกทอรีบ้านของคุณ (บน cygwin) -> 'source .bashrc'

คุณน่าจะดีตอนนี้แล้ว gyp จะค้นหา python ที่สามารถเรียกใช้ได้

ฉันหวังว่าสิ่งนี้จะช่วยให้คนสะดุดในเรื่องเดียวกันหรือคล้ายกัน


นี่คือสิ่งที่แก้ไขปัญหาของฉันโดยใช้ GitBash 2.6.3 บน Windows
Scott Offen

3

ควรจะได้รับการพึ่งพา node-gyp ทั้งหมดด้วยchocolateyสำหรับ Windows

choco install python2
choco install visualstudioexpress2013windowsdesktop

2

ตั้งค่าสภาพแวดล้อม JavaScript

1. ติดตั้ง Node.js

ดาวน์โหลดตัวติดตั้งที่เว็บไซต์ NodeJs คุณสามารถดาวน์โหลด V6 ล่าสุด

2. อัปเดต Npm

ติดตั้ง Npm พร้อมกับ Node.js ดังนั้นไม่ต้องกังวล

3. ติดตั้ง Anaconda

Anaconda เป็นแพลตฟอร์มวิทยาศาสตร์ข้อมูลแบบเปิดซึ่งขับเคลื่อนโดย Python Anaconda รุ่นโอเพ่นซอร์สเป็นการกระจาย Python ที่มีประสิทธิภาพสูง มันสามารถช่วยคุณจัดการการพึ่งพาของหลาม คุณสามารถใช้มันเพื่อสร้างสภาพแวดล้อมของงูหลามที่แตกต่างกันในอนาคตยิ่งกว่าหากคุณต้องการสัมผัสกับมัน

Node-gyp รองรับเท่านั้น> = Python 2.7 และ <Python 3.0

ดังนั้นเพียงแค่ติดตั้งรุ่น 2.7

4. ติดตั้ง Node-gyp

คุณสามารถติดตั้งด้วย  npm:

$ npm install -g node-gyp

คุณจะต้องติดตั้ง:

  • บน Windows:

    • ตัวเลือกที่ 1: ติดตั้งเครื่องมือและการกำหนดค่าที่จำเป็นทั้งหมดโดยใช้windows-build-toolsของ Microsoft   โดยใช้  npm install --global --production windows-build-tools จาก PowerShell หรือ CMD.exe (ทำงานในฐานะผู้ดูแลระบบ)

    • ตัวเลือก 2: ติดตั้งเครื่องมือและการกำหนดค่าด้วยตนเอง:

    • สภาพแวดล้อมการสร้าง c ++ เสมือน:

      • ตัวเลือกที่ 1: ติดตั้ง  เครื่องมือสร้าง Visual c ++  โดยใช้   ตัวเลือกการติดตั้งเริ่มต้น
      • ตัวเลือกที่ 2: ติดตั้ง  Visual Studio 2015  (หรือปรับเปลี่ยนการติดตั้งที่มีอยู่) และเลือก  เครื่องมือทั่วไปสำหรับ Visual C ++  ระหว่างการติดตั้ง สิ่งนี้ยังทำงานกับรุ่น Community และ Express for Desktop ฟรี

      💡 [Windows Vista / 7 เท่านั้น] ต้องใช้  . NET Framework 4.5.1

    • เปิด cmd npm config set msvs_version 2015

    หากขั้นตอนข้างต้นไม่ได้ผลโปรดไปที่  หลักเกณฑ์ Node.js ของ Microsoft สำหรับ Windows  สำหรับเคล็ดลับเพิ่มเติม

หากคุณติดตั้ง Python หลายรุ่นคุณสามารถระบุเวอร์ชั่นของ Python ที่  node-gyp ใช้โดยตั้งค่าตัวแปร '--python':

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

หาก  node-gyp มีการเรียกผ่าน  npm และ  คุณติดตั้ง Python หลายเวอร์ชันคุณสามารถตั้งค่าnpmคีย์การตั้งค่า  'python' ให้เป็นค่าที่เหมาะสม:

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

การอัปเดตในอนาคตสำหรับ Node.js และ npm

ดาวน์โหลดตัวติดตั้งจากเว็บไซต์ทางการและติดตั้งโดยตรง โปรแกรมติดตั้งจะช่วยให้คุณลบไฟล์เก่าโดยอัตโนมัติ

npm update npm

การอัพเดทในอนาคตสำหรับ Python

conda update --all


1

สำหรับผู้ใช้ Cygwin:

ปัญหางูหลามกับการใช้npmในการติดตั้ง Cygwin ออกจากกล่องเป็นที่node-gypให้ข้อผิดพลาดที่ทำให้เข้าใจผิดเนื่องจากการตรวจสอบที่ไม่สมบูรณ์ใน../npm/node_modules/node-gyp/lib/configure.jsรหัส

มันเป็นเพราะ Cygwin ปฏิบัติต่อลิงค์สัญลักษณ์ มันไม่ได้ทำอย่างถูกต้องในการติดตั้งออกจากกล่อง ดังนั้นข้อความผิดพลาดจากโค้ดด้านบนจึงทำให้เข้าใจผิดเนื่องจากมันบ่นเกี่ยวกับPYTHONเส้นทางและไม่ใช่การดำรงอยู่ของpython.exe (หรือลิงก์)

มี (อย่างน้อย) 2 วิธีในการแก้ไขปัญหานี้

  1. การติดตั้งแพคเกจ Cygwin และการใช้งานcygutils-extrawinln
  2. ใช้ Windows CMD ดั้งเดิมในโหมดผู้ดูแลระบบ

สำหรับ ( 1 ) คุณสามารถสร้าง symlink ที่เหมาะสมจากภายใน Cygwin shell โดยทำตามขั้นตอนเหล่านี้:

# 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"

(สมมติว่าคุณใช้ Cygwin เชลล์ในฐานะผู้ดูแลระบบ) apt-cygแนะนำให้ใช้และสามารถพบได้ในรูปแบบต่าง ๆ บน GitHub


สำหรับ ( 2 ) ความละเอียดสำหรับผู้ใช้ Cygwin แบบนอกกรอบคือ:

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

ผลลัพธ์ควรมีลักษณะเช่นนี้:

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

สำหรับ windows

ตรวจสอบเส้นทางของหลามในตัวแปรระบบ ปลั๊กอิน npm จำเป็นต้องติดตั้ง node-gyp

พรอมต์คำสั่งเปิดพร้อมสิทธิ์ผู้ดูแลระบบและเรียกใช้คำสั่งต่อไปนี้

การติดตั้ง npm --global - การผลิต windows-build-tools

การติดตั้ง NPM - Global โหนด-gyp


0

ผิดพลาด! กำหนดค่าข้อผิดพลาด gyp ERR! ข้อผิดพลาดของกองซ้อน: ไม่พบ Python ที่สามารถใช้งานได้ "python" คุณสามารถตั้งค่าตัวแปร PYT HON ​​env

นี่หมายถึง Python env ตัวแปรควรชี้ไปที่ไฟล์ python ที่สามารถใช้งานได้ในกรณีของฉัน: SET PYTHON=C:\work\_env\Python27\python.exe


0

สำหรับฉันทางออกคือ:

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

คำถามนี้ได้รับคำตอบแล้ว แต่สิ่งเหล่านี้ไม่ได้ทำงานในกรณีของฉันซึ่งเป็นระบบปฏิบัติการ Linux ที่ใช้อัลไพน์ดังนั้นอาจช่วยคนอื่นได้

ฉันยังได้รับข้อผิดพลาดเดียวกัน

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

ดังนั้นแก้ไขโดยบรรทัดเดียวเพียงแค่เพิ่มถ้าคุณทำงานใน Dockerfile หรือติดตั้งในระบบปฏิบัติการ

apk add --no-cache python nodejs

ในอูบุนตู

sudo apt-get install python3.6

หมายเหตุ: รุ่นโหนด: 8


0

ติดตั้งคอมไพเลอร์ node-gyp และ c ++ (gcc-c ++)


คุณช่วยอธิบายได้ไหมว่าคำตอบนี้ดีกว่าคำตอบ 11 ข้อที่แล้ว?
สตีเฟ่น Rauch

สวัสดี Stephan แน่นอนว่ามันไม่ได้ดีกว่า แต่ใช่ในขั้นตอนน้อยที่สุดที่เหมาะกับฉัน
brajesh jaishwal

0

แก้ไขด้วยการลดระดับโหนดจาก v12.8.1 เป็น v11.15.0 และทุกอย่างติดตั้งสำเร็จ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.