我正在使用Windows 8.1 64位
我的代码
import pdb
from moviepy.editor import *
clip = VideoFileClip(".\\a.mp4")
clip.write_gif('.\\aasda.gif')
Run Code Online (Sandbox Code Playgroud)
例外是write_gif方法
Traceback (most recent call last):
File "C:\abi\youtubetogif_project\test.py", line 5, in <module>
clip.write_gif('G:\\abi\\aasda.gif')
File "<string>", line 2, in write_gif
File "C:\Python34\lib\site-packages\moviepy-0.2.1.8.12-py3.4.egg\moviepy\decorators.py", line 49, in requires_duration
return f(clip, *a, **k)
File "C:\Python34\lib\site-packages\moviepy-0.2.1.8.12-py3.4.egg\moviepy\video\VideoClip.py", line 435, in write_gif
dispose= dispose, colors=colors)
File "<string>", line 2, in write_gif
File "C:\Python34\lib\site-packages\moviepy-0.2.1.8.12-py3.4.egg\moviepy\decorators.py", line 49, in requires_duration
return f(clip, *a, **k)
File "C:\Python34\lib\site-packages\moviepy-0.2.1.8.12-py3.4.egg\moviepy\video\io\gif_writers.py", line 186, in write_gif
stdout=sp.PIPE)
File "C:\Python34\lib\subprocess.py", line 848, in …
Run Code Online (Sandbox Code Playgroud) 我知道我可以使用更改默认分隔符Mustache.tags('[[', ']]');
我深入研究了源代码,但无法找到并弄清楚如何更改{{{ }}}
默认情况下的非转义 HTML 分隔符。任何帮助表示赞赏。
这是我的撰写文件 dev.yml
version: '2'
volumes:
rethinkdb_data_dev: {}
services:
rethinkdb:
image: rethinkdb:latest
volumes:
- rethinkdb_data_dev:/home/rethinkdb_data
rabbitmq:
image: rabbitmq:latest
fumio:
build:
context: .
dockerfile: ./compose/fumio_dev/Dockerfile
depends_on:
- rethinkdb
- rabbitmq
links:
- rethinkdb
- rabbitmq
env_file: ./compose/fumio_dev/dev.env
environment:
- GIRLFRIEND_FUMIO_CONFIG=development
- GIRLFRIEND_FUMIO_NOSQLDATABASE_HOST=rethinkdb
ports:
- "${GIRLFRIEND_FUMIO_PORT}:8001"
Run Code Online (Sandbox Code Playgroud)
在environment
里面的dev.yml
文件是故意的,这样我就可以用里面覆盖它们dev.env
如果需要的话.
我的dev.env
文件,位于compose/fumio_dev/
文件夹内,相对于dev.yml
文件.
GIRLFRIEND_FUMIO_PORT=8000
Run Code Online (Sandbox Code Playgroud)
这是我跑步时会发生的事情 docker-compose -f dev.yml build
如果我.env
在根文件夹中提供文件,它运行正常,docker-compose会忽略该env_file
值并尝试使用默认值.env
.所以docker-compose env_file在某种程度上不按预期工作或者我错过了什么?
我的docker-compose版本是1.8.0,我将它降级为1.7.1但仍然没有运气(使用pip安装).
我正在开发一个 GeoDjango 应用程序,它使用教程中提供的 WorldBorder 模型。我还创建了自己的区域模型,该模型与 WorldBorder 相关联。所以一个 WorldBorder/Country 可以有多个 Region,其中也有边界(MultiPolygon 字段)。
我使用 DRF 为它制作了 API,但它太慢了,以 GeoJSON 格式加载所有 WorldBorder 和 Region 需要 16 秒。返回的 JSON 大小为 10MB。这合理吗?
我什至将序列化器更改为serpy,这比DRF GIS序列化器快得多,但仅提供 10% 的性能改进。
分析后发现,大部分时间都花在了 GIS 功能上,用于将数据库中的数据类型转换为坐标列表而不是 WKT。如果我使用 WKT,序列化速度要快得多(1.7s 与 11.7s 相比,WKT 仅适用于 WorldBorder MultiPolygon,其他一切仍在 GeoJson 中)
我还尝试使用低容差 (0.005) 的 ST_SimplifyVW 压缩 MultiPolygon 以保持准确性,从而将 JSON 大小降低到 1.7 MB。这使得总负载为 3.5s。当然,我仍然可以找到平衡精度和速度的最佳容差。
下面是分析数据(简化的 MultiPolygon 中查询的突然增加是由于 Django QS API 的错误使用来使用 ST_SimplifyVW)
编辑:我修复了数据库查询,因此查询调用在 75 次查询时保持不变,正如预期的那样,它不会显着提高性能。
编辑:我继续改进我的数据库查询。我现在将它减少到只有 8 个查询。正如预期的那样,它并没有提高那么多的性能。
下面是函数调用的分析。我强调了花费大部分时间的部分。这是使用vanilla DRF GIS实现。
下面是当我将 WKT 用于没有 ST_SimplifyVW …