npm - “找不到Python可执行文件”python“,你可以设置PYTHON env变量。”

时间:2015-12-19 16:01:08

标签: python node.js npm npm-install

我正在尝试运行以下命令:npm install -g bower gulp cordova ionic tsd@next karma-cli protractor node-gyp coffee-script js-beautify typescript npm-check

我已经安装了Python,Visual Studio Express和node-gyp,所以我觉得我很高兴,但是我收到了以下错误:

enter image description here

关于"Can't find Python executable "python", you can set the PYTHON env variable."错误,我有点困惑,因为我已经像这样设置了PYTHON环境变量:

enter image description here

有什么想法吗?

10 个答案:

答案 0 :(得分:12)

尝试:

使用Microsoft的windows-build-tools安装所有必需的工具和配置,方法是从提升的 PowerShell 运行npm install -g windows-build-tools(以管理员身份运行)。

https://github.com/Microsoft/nodejs-guidelines/blob/master/windows-environment.md#environment-setup-and-configuration

答案 1 :(得分:11)

你必须将python添加到PATH变量中。您可以做的一件事是现在编辑您的路径变量并添加

;%PYTHON%;

你的变量PYTHON应该指向python安装的根目录。

答案 2 :(得分:8)

我安装了python2.7来解决这个问题。我希望可以帮到你。

答案 3 :(得分:7)

答案 4 :(得分:5)

只需在具有管理员权限的命令下运行

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

答案 5 :(得分:3)

您正在以管理员身份运行命令提示符。您只为您的用户定义了PYTHON。你需要在底部定义它"系统变量"部分。

此外,您应该只将变量指向文件夹,而不是直接指向可执行文件。

答案 6 :(得分:1)

以下解决方案之一将为您服务:

  1. npm配置集python c:\Python\27\python.exeset PYTHON=D:\Python\bin\Python.exe
  2. npm config set python D:\Library\Python\Python27\python.exe
  3. 让npm为您配置所有内容(需要花费很长时间才能完成)npm --add-python-to-path='true' --debug install --global windows-build-tools(必须通过“以管理员身份运行” PowerShell执行)

如果没有,请尝试自行安装所需的软件包(我这样做是node-sass,在手动安装后,整个npm install已成功完成

答案 7 :(得分:1)

我最近在使用 node:16-alpine 作为基础映像的 dockerfile 中遇到了这个问题。我添加了以下运行命令来解决这个问题:

FROM node:alpine as build-stage
RUN apk add --no-cache python3 py3-pip make g++

这里,两个标签 node:alpinenode:16-alpine 是相同的。

答案 8 :(得分:0)

最简单的方法是让NPM为您做所有事情,

var permissionname = 'insert, update, delete, list' // post data

var json = {    // db json
    "_id": "5ca6d98c8ba48b0c2028c24b",
    "user_id": "5c8740860c5dcf6c615c1ba3",
    "permissions": [
        {
            "dashboard": [
                "bar chart",
                "pie chart"
            ],
            "product management": [
                "update",
                "delete",
                "list"
            ]
        }
    ]
}

if (modulename in json.permissions[0]) {
    console.log('modulename exists')
    var moduleArray = json.permissions[0][modulename]
    if (moduleArray.includes(permissionname)) {
        console.log('permissionname exists')    // Don't to do anything on db
    } else {
        var splitedPermission = permissionname.split(',')
        splitedPermission.forEach(result => {
            json.permissions[0][modulename].push(result.trim())
        })
        console.log(json.permissions[0][modulename])
    }
} else {
    var arrayOfPermissions = permissionname.split(',').map(permissions => permissions.trim())
    json.permissions[0][modulename] = arrayOfPermissions
}



console.log(JSON.stringify(json))

答案 9 :(得分:0)

我的问题是 Node v16 的使用。

我回到了 Node v12(v14 可能也不错)并且它工作正常。