安装manimlib时遇到UnicodeDecodeError: 'gbk' codec can't decode byte这个问题时,用我以下这种方式安装
今天安装manimlib的时候遇到了一些问题。先说我正确安装成功过程:
1.去https://github.com/3b1b/manim下载zip或者git clone下来,然后进到根目录,也就是进到名为manim的文件夹下,cmd执行:
# 自动安装requirements.txt这个文件里的所有包
python3 -m pip install -r requirements.txt
# 尝试运行一个Demo
python3 ./manim.py example_scenes.py SquareToCircle -pl
如果这两行代码都没问题,就会自动播放一段视频,如果你没设置过mediaplayer播放视频,会先让你设置一下才播放。
2.把第一步下载的manim中的manim.py文件和manimlib文件夹复制到你python安装路径下的Lib目录内,
比如我用的是Anaconda的Python,我的python路径是D:\ProgramData\Anaconda3_x64,那么我就把下载的manim.py文件和manimlib这个文件夹复制D:\ProgramData\Anaconda3_x64\Lib这个目录下。
3.测试是否安装成功,到桌面新建一个文件manim_demo.py然后写入以下内容并保存:
from manimlib.imports import *
class Shapes(Scene):
def construct(self):
circle = Circle()
square = Square()
line=Line(np.array([3,0,0]),np.array([5,0,0]))
triangle=Polygon(np.array([0,0,0]),np.array([1,1,0]),np.array([1,-1,0]))
self.add(line)
self.play(ShowCreation(circle))
self.play(FadeOut(circle))
self.play(GrowFromCenter(square))
self.play(Transform(square,triangle))
cmd cd到桌面或者Shift+右键,输入:
python -m manim manim_demo.py Shapes -pl
如果成功,会自动播放视频,并在manim_demo.py所在的目录下生成一个media的文件夹,视频就在里面:
至此已完成安装并验证安装成功。
以下是采坑经历:
刚开始我用pip install manimlib直接安装时出现了错误,安装失败:
具体报错代码:
C:\Users\Administrator\Desktop\temp\manim> pip install manimlib
Looking in indexes: http://mirrors.aliyun.com/pypi/simple/
Collecting manimlib
Downloading http://mirrors.aliyun.com/pypi/packages/a8/0c/dd48debbf8ced0aa16df62e8f16162521f0bbc086398cdbbd51faf9fca72/manimlib-0.1.11.tar.gz (4.8 MB)
|████████████████████████████████| 4.8 MB 7.8 kB/s
ERROR: Command errored out with exit status 1:
command: 'D:\ProgramData\Anaconda3_x64\python.exe' -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\pip-install-po5ju0iy\\manimlib\\setup.py'"'"'; __file__='"'"'C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\pip-install-po5ju0iy\\manimlib\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\ADMINI~1\AppData\Local\Temp\pip-install-po5ju0iy\manimlib\pip-egg-info'
cwd: C:\Users\ADMINI~1\AppData\Local\Temp\pip-install-po5ju0iy\manimlib\
Complete output (22 lines):
ERROR:root:Error parsing
Traceback (most recent call last):
File "c:\users\admini~1\appdata\local\temp\pip-install-po5ju0iy\manimlib\.eggs\pbr-5.5.0-py3.7.egg\pbr\core.py", line 96, in pbr
attrs = util.cfg_to_args(path, dist.script_args)
File "c:\users\admini~1\appdata\local\temp\pip-install-po5ju0iy\manimlib\.eggs\pbr-5.5.0-py3.7.egg\pbr\util.py", line 272, in cfg_to_args
pbr.hooks.setup_hook(config)
File "c:\users\admini~1\appdata\local\temp\pip-install-po5ju0iy\manimlib\.eggs\pbr-5.5.0-py3.7.egg\pbr\hooks\__init__.py", line 25, in setup_hook
metadata_config.run()
File "c:\users\admini~1\appdata\local\temp\pip-install-po5ju0iy\manimlib\.eggs\pbr-5.5.0-py3.7.egg\pbr\hooks\base.py", line 27, in run
self.hook()
File "c:\users\admini~1\appdata\local\temp\pip-install-po5ju0iy\manimlib\.eggs\pbr-5.5.0-py3.7.egg\pbr\hooks\metadata.py", line 26, in hook
self.config['name'], self.config.get('version', None))
File "c:\users\admini~1\appdata\local\temp\pip-install-po5ju0iy\manimlib\.eggs\pbr-5.5.0-py3.7.egg\pbr\packaging.py", line 858, in get_version
version = _get_version_from_pkg_metadata(package_name)
File "c:\users\admini~1\appdata\local\temp\pip-install-po5ju0iy\manimlib\.eggs\pbr-5.5.0-py3.7.egg\pbr\packaging.py", line 826, in _get_version_from_pkg_metadata
pkg_metadata = email.message_from_file(pkg_metadata_file)
File "D:\ProgramData\Anaconda3_x64\lib\email\__init__.py", line 54, in message_from_file
return Parser(*args, **kws).parse(fp)
File "D:\ProgramData\Anaconda3_x64\lib\email\parser.py", line 54, in parse
data = fp.read(8192)
UnicodeDecodeError: 'gbk' codec can't decode byte 0x91 in position 2514: illegal multibyte sequence
error in setup command: Error parsing C:\Users\ADMINI~1\AppData\Local\Temp\pip-install-po5ju0iy\manimlib\setup.cfg: UnicodeDecodeError: 'gbk' codec can't decode byte 0x91 in position 2514: illegal multibyte sequence
----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.