11

我已经完成了 CKAN 开发安装,并且在我的 development.ini 文件中使用 debug = true 运行。在访问 localhost:5000 时,我收到一个错误,其终点是错误:

AttributeError: 'module' object has no attribute 'css/main.debug.css'

由 lib/helpers.py 中的调用引起:

r = getattr(fanstatic_resources, resource)

知道我做错了什么以及我能做些什么来解决这个错误。

4

4 回答 4

14

您需要从CKAN 源代码中less的目录运行脚本来构建文件。有这方面的一些文档,但它还没有与其余的 CKAN 文档集成(即在任何地方都没有指向它的链接,我们有一张票可以解决这个问题)。binmain.debug.css

这适用于 Ubuntu 12.04,您可能需要在执行此操作时激活 virtualenv:

sudo apt-get install nodejs npm
npm install less nodewatch
./bin/less # Assuming you're in your ckan dir e.g. `~/pyenv/src/ckan`

现在重新启动paster serve development.ini命令,它应该可以工作。

一般来说,每当运行 CKAN 2.0 进行开发时,您应该:

  • 在你debug = True的ini文件中有
  • 一直./bin/less在终端运行
于 2012-11-21T13:57:31.643 回答
5

请注意apt-get install nodejsinstallsnodejs而不是nodein /usr/bin,至少在 Ubuntu 12.10 中(我没有检查其他发行版)。这会引发错误,因为两者都ckan/bin/lessckan/node_modules/less/bin/lessc调用 node. 所以要么在 /usr/bin 中创建一个软链接,要么修改脚本 ( #!/usr/bin/env nodejs)。

于 2012-11-28T12:46:47.757 回答
4

我在安装软件包时遇到了一些错误。以下是不耐烦的解决方案(根据官方 CKAN 文档):

cp /usr/lib/ckan/default/src/ckan/ckan/public/base/css/main.css /usr/lib/ckan/default/src/ckan/ckan/public/base/css/main.debug.css

于 2015-09-16T20:05:44.867 回答
0

我正在使用 ubuntu 12.04 并遇到了一些问题

遵循肖恩的回答并运行后出现此错误

npm install less nodewatch

并得到这个错误:

(default)root@ckan:/# npm install less nodewatch
npm http GET https://registry.npmjs.org/less
npm http GET https://registry.npmjs.org/nodewatch
npm ERR! Error: failed to fetch from registry: less
npm ERR!     at /usr/share/npm/lib/utils/npm-registry-client/get.js:139:12
npm ERR!     at cb (/usr/share/npm/lib/utils/npm-registry-client/request.js:31:9)
npm ERR!     at Request._callback (/usr/share/npm/lib/utils/npm-registry-client/request.js:136:18)
npm ERR!     at Request.callback (/usr/lib/nodejs/request/main.js:119:22)
npm ERR!     at Request.<anonymous> (/usr/lib/nodejs/request/main.js:212:58)
npm ERR!     at Request.emit (events.js:88:20)
npm ERR!     at ClientRequest.<anonymous> (/usr/lib/nodejs/request/main.js:412:12)
npm ERR!     at ClientRequest.emit (events.js:67:17)
npm ERR!     at HTTPParser.onIncoming (http.js:1261:11)
npm ERR!     at HTTPParser.onHeadersComplete (http.js:102:31)
npm ERR! You may report this log at:
npm ERR!     <http://bugs.debian.org/npm>
npm ERR! or use
npm ERR!     reportbug --attach /npm-debug.log npm
npm ERR! 
npm ERR! System Linux 3.8.0-29-generic
npm ERR! command "node" "/usr/bin/npm" "install" "less" "nodewatch"
npm ERR! cwd /
npm ERR! node -v v0.6.12
npm ERR! npm -v 1.1.4
npm ERR! message failed to fetch from registry: less
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /npm-debug.log
npm not ok

找到另一个线程来解释这一点并提供执行的解决方案

npm config set registry http://registry.npmjs.org/

但是,在运行上述命令后,我收到此错误:

(default)root@ckan:/# npm config set registry http://registry.npmjs.org/
(default)root@ckan:/# npm install less nodewatch
npm http GET http://registry.npmjs.org/less
npm http GET http://registry.npmjs.org/nodewatch
npm http 200 http://registry.npmjs.org/less
npm http GET http://registry.npmjs.org/less/-/less-1.6.3.tgz
npm http 200 http://registry.npmjs.org/nodewatch
npm http GET http://registry.npmjs.org/nodewatch/-/nodewatch-0.3.1.tgz
npm http 200 http://registry.npmjs.org/less/-/less-1.6.3.tgz
npm http 200 http://registry.npmjs.org/nodewatch/-/nodewatch-0.3.1.tgz
npm http GET http://registry.npmjs.org/mime
npm http GET http://registry.npmjs.org/request
npm http GET http://registry.npmjs.org/mkdirp
npm http GET http://registry.npmjs.org/clean-css
npm http GET http://registry.npmjs.org/source-map
npm http 200 http://registry.npmjs.org/request
npm http GET http://registry.npmjs.org/request/-/request-2.33.0.tgz
npm http 200 http://registry.npmjs.org/request/-/request-2.33.0.tgz
npm http 200 http://registry.npmjs.org/mime
npm http GET http://registry.npmjs.org/mime/-/mime-1.2.11.tgz
npm http 200 http://registry.npmjs.org/mkdirp
npm http 200 http://registry.npmjs.org/clean-css
npm http GET http://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz
npm WARN optional dependency failed, continuing clean-css@2.0.x
npm http 200 http://registry.npmjs.org/source-map
npm http 200 http://registry.npmjs.org/mime/-/mime-1.2.11.tgz
npm http GET http://registry.npmjs.org/source-map/-/source-map-0.1.3.tgz
npm http 200 http://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz
npm http 200 http://registry.npmjs.org/source-map/-/source-map-0.1.3.tgz
npm ERR! error installing less@1.6.3
npm ERR! error rolling back less@1.6.3 Error: UNKNOWN, unknown error '/node_modules/less'

npm ERR! Unsupported
npm ERR! Not compatible with your version of node/npm: request@2.33.0
npm ERR! Required: ["node >= 0.8.0"]
npm ERR! Actual:   {"npm":"1.1.4","node":"0.6.12"}
npm ERR! 
npm ERR! System Linux 3.8.0-29-generic
npm ERR! command "node" "/usr/bin/npm" "install" "less" "nodewatch"
npm ERR! cwd /
npm ERR! node -v v0.6.12
npm ERR! npm -v 1.1.4
npm ERR! code ENOTSUP
npm ERR! message Unsupported
npm ERR! errno {}
npm http GET http://registry.npmjs.org/requirejs/0.26.0
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /npm-debug.log
npm not ok

似乎版本不兼容,或者这可能是 node 和 node.js 的问题?

干杯,邵

于 2014-02-14T10:35:37.733 回答