8

我想使用 cookiecutter 启动一个 django 项目,但由于某种原因找不到 cookiecutter。

我所做的是:

pip install cookiecutter

之后:

cookiecutter https://github.com/pydanny/cookiecutter-django

然后我收到错误消息:

    The program 'cookiecutter' is currently not installed. You can install it by typing:
    sudo apt install cookiecutter

但是,当我使用 apt 安装 cookiecutter 并运行时cookiecutter https://github.com/pydanny/cookiecutter-django,出现错误。

Traceback (most recent call last):
  File "/usr/bin/cookiecutter", line 9, in <module>
    load_entry_point('cookiecutter==1.3.0', 'console_scripts', 'cookiecutter')()
  File "/usr/lib/python2.7/dist-packages/click/core.py", line 716, in __call__
    return self.main(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/click/core.py", line 696, in main
    rv = self.invoke(ctx)
  File "/usr/lib/python2.7/dist-packages/click/core.py", line 889, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/lib/python2.7/dist-packages/click/core.py", line 534, in invoke
    return callback(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/cookiecutter/cli.py", line 100, in main
    config_file=user_config
  File "/usr/lib/python2.7/dist-packages/cookiecutter/main.py", line 140, in cookiecutter
    output_dir=output_dir
  File "/usr/lib/python2.7/dist-packages/cookiecutter/generate.py", line 327, in generate_files
    generate_file(project_dir, infile, context, env)
  File "/usr/lib/python2.7/dist-packages/cookiecutter/generate.py", line 167, in generate_file
    tmpl = env.get_template(infile_fwd_slashes)
  File "/usr/lib/python2.7/dist-packages/jinja2/environment.py", line 812, in get_template
    return self._load_template(name, self.make_globals(globals))
  File "/usr/lib/python2.7/dist-packages/jinja2/environment.py", line 786, in _load_template
    template = self.loader.load(self, name, globals)
  File "/usr/lib/python2.7/dist-packages/jinja2/loaders.py", line 125, in load
    code = environment.compile(source, name, filename)
  File "/usr/lib/python2.7/dist-packages/jinja2/environment.py", line 565, in compile
    self.handle_exception(exc_info, source_hint=source_hint)
  File "/usr/lib/python2.7/dist-packages/jinja2/environment.py", line 754, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "./LICENSE", line 3, in template
jinja2.exceptions.TemplateSyntaxError: Encountered unknown tag 'now'. Jinja was looking for the following tags: 'elif' or 'else' or 'endif'. The innermost block that needs to be closed is 'if'.
  File "./LICENSE", line 3
    Copyright (c) {% now 'utc', '%Y' %}, {{ cookiecutter.author_name }}

我知道这与 cookiecutter 的版本有关,它必须 >=1.4
pip 包的版本是 1.4,但它不会运行。

我在这里想念什么?

我正在使用virtualbox,因此这不在virtualenv中。

4

2 回答 2

16

你也可以运行它

python -m cookiecutter https://github.com/pydanny/cookiecutter-django
于 2020-05-01T13:25:32.680 回答
10

抱歉,看来你把事情搞混了。

  1. 因为sudo apt-get install cookiecutter安装了一个叫做 cookiecutter 的东西并不意味着它是来自 pip 的同一个 cookiecutter。事实上,他们没有任何共同之处。一个是 python 的 cookie 切割器,另一个是 django 的。
  2. 这是启动板上的 cookiecutter,您使用 apt-get 安装的那个: https ://launchpad.net/ubuntu/+source/cookiecutter
  3. 这就是你要找的东西:https ://pypi.python.org/pypi/cookiecutter-django

所以回到你的问题:

如果您希望省去一些麻烦,即使您在 Virtualbox 中工作,设置 VirtualEnv 来处理项目的封装也没有错。

根据对您问题的理解,我只是复制并在几秒钟内完成了所有工作。

  • mkvirtualenv myProject(假设您安装了 virtualenv 和 virtualenvwrapper,添加到~/.bashrc并重新启动了 bash,或者重新启动终端 gui,或者souce ~/.bashrc
  • workon myProject
  • 然后在(myProject) $~提示符下,继续您的安装,即:
  • sudo apt install python-pip
  • pip install cookiecutter
  • 然后照常进行,cookiecutter https://github.com/pydanny/cookiecutter-django.git

除非你打算为你想开始的每个 Django 项目启动 Ubuntu virtualbox 实例,否则我建议你使用 virtualenv 来保持干净。

于 2016-07-03T23:11:21.780 回答