I was follow: https://cookiecutter.readthedocs.io/en/latest/first_steps.html#your-first-cookiecutter
A new directory created successfully but it produces errors like below. I think maybe it's about Python version?
I tried it on Python 2.7.6. It works fine.
Python2
$ cookiecutter HelloCookieCutter1
directory_name [Hello]:
file_name [Howdy]:
greeting_recipient [Julie]:
Traceback (most recent call last):
File "/Users/mrteera/.virtualenvs/automate_micro/bin/cookiecutter", line 11, in <module>
sys.exit(main())
File "/Users/mrteera/.virtualenvs/automate_micro/lib/python2.7/site-packages/click/core.py", line 716, in __call__
return self.main(*args, **kwargs)
File "/Users/mrteera/.virtualenvs/automate_micro/lib/python2.7/site-packages/click/core.py", line 696, in main
rv = self.invoke(ctx)
File "/Users/mrteera/.virtualenvs/automate_micro/lib/python2.7/site-packages/click/core.py", line 889, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/Users/mrteera/.virtualenvs/automate_micro/lib/python2.7/site-packages/click/core.py", line 534, in invoke
return callback(*args, **kwargs)
File "/Users/mrteera/.virtualenvs/automate_micro/lib/python2.7/site-packages/cookiecutter/cli.py", line 106, in main
config_file=user_config
File "/Users/mrteera/.virtualenvs/automate_micro/lib/python2.7/site-packages/cookiecutter/main.py", line 144, in cookiecutter
output_dir=output_dir
File "/Users/mrteera/.virtualenvs/automate_micro/lib/python2.7/site-packages/cookiecutter/generate.py", line 350, in generate_files
generate_file(project_dir, infile, context, env)
File "/Users/mrteera/.virtualenvs/automate_micro/lib/python2.7/site-packages/cookiecutter/generate.py", line 168, in generate_file
tmpl = env.get_template(infile_fwd_slashes)
File "/Users/mrteera/.virtualenvs/automate_micro/lib/python2.7/site-packages/jinja2/environment.py", line 812, in get_template
return self._load_template(name, self.make_globals(globals))
File "/Users/mrteera/.virtualenvs/automate_micro/lib/python2.7/site-packages/jinja2/environment.py", line 774, in _load_template
cache_key = self.loader.get_source(self, name)[1]
File "/Users/mrteera/.virtualenvs/automate_micro/lib/python2.7/site-packages/jinja2/loaders.py", line 175, in get_source
contents = f.read().decode(self.encoding)
File "/Users/mrteera/.virtualenvs/automate_micro/lib/python2.7/encodings/utf_8.py", line 16, in decode
return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0x80 in position 0: invalid start byte
Python3
cookiecutter HelloCookieCutter1
directory_name [Hello]:
file_name [Howdy]:
greeting_recipient [Julie]:
Traceback (most recent call last):
File "/usr/local/bin/cookiecutter", line 11, in <module>
sys.exit(main())
File "/usr/local/lib/python3.5/site-packages/click/core.py", line 716, in __call__
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.5/site-packages/click/core.py", line 696, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.5/site-packages/click/core.py", line 889, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.5/site-packages/click/core.py", line 534, in invoke
return callback(*args, **kwargs)
File "/usr/local/lib/python3.5/site-packages/cookiecutter/cli.py", line 106, in main
config_file=user_config
File "/usr/local/lib/python3.5/site-packages/cookiecutter/main.py", line 144, in cookiecutter
output_dir=output_dir
File "/usr/local/lib/python3.5/site-packages/cookiecutter/generate.py", line 350, in generate_files
generate_file(project_dir, infile, context, env)
File "/usr/local/lib/python3.5/site-packages/cookiecutter/generate.py", line 168, in generate_file
tmpl = env.get_template(infile_fwd_slashes)
File "/usr/local/lib/python3.5/site-packages/jinja2/environment.py", line 812, in get_template
return self._load_template(name, self.make_globals(globals))
File "/usr/local/lib/python3.5/site-packages/jinja2/environment.py", line 774, in _load_template
cache_key = self.loader.get_source(self, name)[1]
File "/usr/local/lib/python3.5/site-packages/jinja2/loaders.py", line 175, in get_source
contents = f.read().decode(self.encoding)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte
$ python Hello/Howdy.py
Hello, Julie!
I experienced the same problem on python2.7.11, do we have any office way to get around this issue currently? or when you guys can look into this issues?
much appreciated.
Cheers,
Tony
Hi @mrteera and @tonytvo,
Thanks for the issue report.
It looks like the {{cookiecutter.directory_name}}/{{cookiecutter.file_name}}.py file you've created cannot be decoded as utf-8.
Can you check your editor settings?
馃敂
@michaeljoseph I use vim on mac. I've already changed my laptop so I can't remember what plugins I've installed.
Now I'm using a new laptop and similar vim plugins. Python 2.7.12, Cookiecutter 1.4.0. it works beautifully. So I can't reproduce this error anymore.
I'm going to mark this closed. If this is reproduced, please reopen it.
I have the same problem again, but I found that it's not related to Cookiecutter.
I just want to put the solution here in case someone also found this problem.
The problem is in your directory, there are files contain non-UTF-8, so what I did is remove all those files that contain non-UTF-8 characters.
find . -type f | xargs -I {} bash -c "iconv -f utf-8 -t utf-16 {} &>/dev/null || echo {}" > utf8_fail
Most helpful comment
I have the same problem again, but I found that it's not related to Cookiecutter.
I just want to put the solution here in case someone also found this problem.
The problem is in your directory, there are files contain non-UTF-8, so what I did is remove all those files that contain non-UTF-8 characters.
Credit: https://gist.github.com/rmetzler/2947828