拒绝安装sqlite3作为自身的依赖

Dor*_*hyy 21 sqlite node.js npm

我有最新版本的node.js构建没有问题.我正在尝试为node.js使用sqlite模块.

对于developseed的node-sqlite3,我按照指示:

git clone git://github.com/developmentseed/node-sqlite3.git
cd node-sqlite3
./configure
make
Run Code Online (Sandbox Code Playgroud)

我安装了npm:curl -k https://npmjs.org/install.sh | sudo sh

并使用npm安装node-gyp:sudo npm install -g node-gyp

在node-sqlite3 configure-d和make-d之后,我尝试用npm安装,我得到这个:

npm install sqlite3
npm WARN install Refusing to install sqlite3 as a dependency of itself
Run Code Online (Sandbox Code Playgroud)

当我研究这个错误时,我发现了这个问题:npm install sqlite3 error我试过:

 node-waf clean || true; node-waf configure build
Run Code Online (Sandbox Code Playgroud)

但得到了这个错误:

/usr/local/bin/../lib/node/wafadmin/Utils.py:136: DeprecationWarning: the md5 module is deprecated; use hashlib instead
from md5 import md5
Waf: Please run waf from a directory containing a file named "wscript" or run distclean
/usr/local/bin/../lib/node/wafadmin/Utils.py:136: DeprecationWarning: the md5 module is deprecated; use hashlib instead
from md5 import md5
arg[0] directory does not contain a wscript file
Run Code Online (Sandbox Code Playgroud)

当我尝试构建orlandov/node-sqlite时,我从git中获取它,然后尝试:

node-waf configure build
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

/usr/local/bin/../lib/node/wafadmin/Utils.py:136: DeprecationWarning: the md5 module is
deprecated; use hashlib instead
from md5 import md5
Checking for program g++ or c++          : /usr/bin/g++
Checking for program cpp                 : /usr/bin/cpp
Checking for program ar                  : /nnmc/cvsbin/ar
Checking for program ranlib              : /usr/bin/ranlib
Checking for g++                         : ok
Checking for program gcc or cc           : cc
Checking for gcc                         : ok
Checking for node path                   : not found
Checking for node prefix                 : ok /usr/local
'configure' finished successfully (0.070s)
Waf: Entering directory `/U1/dorothyy/project_node/node-sqlite/build'
/U1/dorothyy/project_node/node-sqlite/deps/mpool-2.1.0
make: Nothing to be done for `all'.
Waf: Leaving directory `/U1/dorothyy/project_node/node-sqlite/build'
Traceback (most recent call last):
File "/usr/local/bin/node-waf", line 16, in <module>
Scripting.prepare(t, os.getcwd(), VERSION, wafdir)
File "/usr/local/bin/../lib/node/wafadmin/Scripting.py", line 145, in prepare
prepare_impl(t, cwd, ver, wafdir)
File "/usr/local/bin/../lib/node/wafadmin/Scripting.py", line 135, in prepare_impl
main()
File "/usr/local/bin/../lib/node/wafadmin/Scripting.py", line 188, in main
fun(ctx)
File "/usr/local/bin/../lib/node/wafadmin/Scripting.py", line 386, in build
return build_impl(bld)
File "/usr/local/bin/../lib/node/wafadmin/Scripting.py", line 405, in build_impl
bld.compile()
File "/usr/local/bin/../lib/node/wafadmin/Build.py", line 255, in compile
self.flush()
File "/usr/local/bin/../lib/node/wafadmin/Build.py", line 717, in flush
tg.post()
File "/usr/local/bin/../lib/node/wafadmin/TaskGen.py", line 219, in post
self.apply()
File "/usr/local/bin/../lib/node/wafadmin/TaskGen.py", line 206, in apply
v()
File "/usr/local/bin/../lib/node/wafadmin/TaskGen.py", line 464, in apply_core
node = find_resource(filename)
File "/usr/local/bin/../lib/node/wafadmin/Node.py", line 183, in find_resource
st = Utils.h_file(path)
AttributeError: 'module' object has no attribute 'h_file'
Run Code Online (Sandbox Code Playgroud)

我不能使用grumdrig/node-sqlite,因为它不支持异步访问.

谢谢你的任何建议.

Sim*_*n H 52

当我的应用程序与我安装的一个软件包(npm)同名时,我收到此错误.我只是做了一些练习,并没想到我需要一个独特的项目名称......

只需将name您的内容更改package.json为其他内容即可.


Vad*_*hev 17

你不需要执行

npm install sqlite3
Run Code Online (Sandbox Code Playgroud)

在node-sqlite3文件夹中.通过执行此命令,您尝试安装sqlite3作为sqlite3的依赖项(您已经拥有它).

有两种方法可以安装sqlite3:

第一:

在你的项目文件夹中执行

npm install sqlite3
Run Code Online (Sandbox Code Playgroud)

你不需要在它之前克隆git项目.不需要手动配置和制作.只需在要使用sqlite3模块的项目文件夹中执行此命令即可.在npm完成后,您应该在项目文件夹中看到文件夹node_modules/sqlite3.现在您可以通过require在项目中使用它:

var sqlite3 = require('sqlite3');
Run Code Online (Sandbox Code Playgroud)

第二:

仅当npm安装失败时才使用此方法.(超自然).

  1. 转到项目文件夹.
  2. 如果不存在,则创建文件夹node_modules.
  3. 执行:

    git clone git://github.com/developmentseed/node-sqlite3.git
    cd node-sqlite3
    ./configure
    make
    
    Run Code Online (Sandbox Code Playgroud)
  4. 好.现在sqlite3半准备使用.我们需要安装依赖项.执行:

    npm install
    
    Run Code Online (Sandbox Code Playgroud)

    注意: npm install没有其他参数.此命令使用sqlite3文件夹中的package.json来安装依赖项.

在npm完成后,您可以在项目中使用sqlite3模块.

  • 尝试按照以下说明重新安装node.js和npm:https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager.在页面上找到"RHEL/CentOS/Scientific Linux 5和6"部分.这是令人愉快的文件. (2认同)

mar*_*nce 7

只需保留要安装的模块的目录,然后再次尝试安装.这对我有用.所以:

cd ..
npm install sqlite3
Run Code Online (Sandbox Code Playgroud)