2015-07-06 22 views
11

Vì vậy, tôi đang cố gắng để Node.js hoạt động. Tất nhiên, nó không dễ như quảng cáo :)Node.js (npm) từ chối tìm python ngay cả sau khi% PYTHON% đã được đặt

Tôi tình cờ có hai phiên bản python trên máy tính của mình, nhưng Node.js dường như chỉ hoạt động với phiên bản cũ hơn, 2.7. Khi lỗi, nó cũng khuyến khích tôi để thiết lập đường dẫn vào PYTHON biến môi trường với lỗi này:

Error: Can't find Python executable "python2.7", you can set the PYTHON env variable. 

Ok sau đó, tôi đã cấu hình biến như mong muốn:

C:\Users\Jakub>set PYTHON=C:\MYSELF\Programs\Python2.7\python.exe 

C:\Users\Jakub>echo %PYTHON% 
C:\MYSELF\Programs\Python2.7\python.exe 

Bạn có thể thấy rằng tôi sử dụng echo để kiểm tra xem biến có thực sự được đặt hay không. Unfortunatelly, rằng npm điều không thể đọc nó và lỗi xuất hiện trở lại. Dưới đây là toàn bộ bản ghi ngay sau khi tôi đặt %PYTHON% biến:

C:\Users\Jakub>npm install minecraft-protocol 
\ 


> [email protected] install C:\Users\Jakub\node_modules\minecraft-protocol\node_modules\ursa 
> node-gyp rebuild 

| 
C:\Users\Jakub\node_modules\minecraft-protocol\node_modules\ursa>if not defined npm_config_node_gyp (node "C:\Program Files (x86)\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\no 
de_modules\node-gyp\bin\node-gyp.js" rebuild) else (rebuild) 
gyp ERR! configure error 
gyp ERR! stack Error: Can't find Python executable "python2.7", you can set the PYTHON env variable. 
gyp ERR! stack  at failNoPython (C:\Program Files (x86)\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js:103:14) 
gyp ERR! stack  at C:\Program Files (x86)\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js:64:11 
gyp ERR! stack  at FSReqWrap.oncomplete (evalmachine.<anonymous>:95:15) 
+0

Thay đổi đối với biến môi trường bằng cách sử dụng "set" chỉ kéo dài trong khoảng thời gian của cửa sổ cmd. –

+0

Tôi không đóng cửa sổ - 'npm install ...' đã được phát hành ngay sau khi định cấu hình biến, trong cùng một cửa sổ. –

+0

Tôi gặp vấn đề tương tự trên Windows 10. Tôi đã gỡ cài đặt Node, Python, Electron và NPM, khởi động lại máy tính, cài đặt lại Node, Python, Electron và NPM, sau đó khởi động lại máy tính của tôi một lần nữa trước khi nó hoạt động. gyp + windows = joke –

Trả lời

38

tôi đã tìm ra giải pháp ổn định nhất là để thiết lập giá trị python nội NPM để đường dẫn thực tế:

npm config set python C:\Programs\Python2.7\python2.7.exe 

này bỏ qua tất cả các biến môi trường và %PATH% crap và chỉ bắt đầu trăn bất cứ nơi nào nó được cài đặt.

+1

Đặt các biến môi trường không hoạt động đối với tôi. Câu trả lời này đã làm! Cảm ơn – pcormier

+0

Ngoài ra hãy chắc chắn rằng bạn đã cài đặt đúng phiên bản! –

1

Mở lại thiết bị đầu cuối của bạn sau khi bạn đặt biến môi trường của bạn trong trường hợp cửa sổ nhưng trong trường hợp của Linux không cần phải khởi động lại thiết bị đầu cuối.

+0

Đây có phải là câu trả lời hoặc nhận xét không? Dù sao, tại sao tôi cần phải khởi động lại thiết bị đầu cuối (không hoạt động)? –

3

TL; DR Tạo một bản sao hoặc bí danh của python.exe của bạn với tên python2.7.exe

python My 2,7 ​​được cài đặt như

D:\app\Python27\python.exe

tôi luôn luôn nhận lỗi này không có vấn đề làm thế nào tôi set (và xác minh) pYTHON env biến:

 
gyp ERR! stack Error: Can't find Python executable "python2.7", you can set the PYTHON env variable. 
gyp ERR! stack  at failNoPython (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js:103:14) 

lý do cho điều này đã xảy ra vào configure.js nút-làm người nào nhức nhối của python thực thi đã được giải quyết như sau:

var python = gyp.opts.python || process.env.PYTHON || 'python'

Và hóa ra là gyp.opts.python có giá trị 'python2.7' do đó ghi đè quá trình.env.PYTHON.

tôi giải quyết điều này bằng cách tạo ra một bí danh cho thực thi python.exe với tên nút-làm người nào nhức nhối đang tìm kiếm:

D:\app\Python27>mklink python2.7.exe python.exe

Bạn cần quyền quản trị cho hoạt động này.

+0

có cách tiếp cận tương tự nhưng điều đó không giải quyết được vấn đề cho tôi. – DoubleU23

+0

@ DoubleU23, tôi khuyên bạn nên sử dụng cấu hình npm như [Tomáš Zato] (http://stackoverflow.com/users/607407/tom%c3%a1%c5%a1-zato) được đề xuất. Điều đó có vẻ giống như cách chính thức. Đề xuất của tôi là giải pháp khác. – iaarnio

Các vấn đề liên quan