我想在不同主机上的某些docker容器中运行任务.我编写了一个管理应用程序来管理容器(启动任务,停止任务,获取状态等等).一旦容器启动,它将向管理器发送一个http请求及其地址和端口,因此管理器将知道如何管理容器.
由于可能有多个容器在同一主机上运行,因此它们将映射到不同的端口.要在我的管理器上注册容器,我必须知道每个容器映射到哪个端口.
如何在 docker容器中获取映射端口?
这里有一个解决方案如何从docker容器中知道主机的映射端口?.但是如果我使用-P运行容器则不适用.由于这个问题是在1年多前提出的,我想知道也许有一个新的功能添加到docker来解决这个问题.
我想做一些3D绘图来可视化一些数据.我正在使用matplotlib但是matplotlib的3D功能没有2D绘图那么强大.我发现Mayavi非常强大.甚至matplotlib也在http://matplotlib.org/mpl_toolkits/mplot3d/faq.html中推荐它
但是,我之前的大多数工作都是在Python 3中完成的,但MayaVi还不支持Python 3.
我怎么能在Python 3中绘制3D图形?
我有一个函数,其中一个参数为numpy.ndarray.它是可变的,所以它不能被lru_cache缓存.
有没有现成的解决方案?
由于80个字符的宽度限制,编写长文档字符串和长注释很烦人.
例如,我写了类似的东西:
def fun(self):
"""Return some thing
This function do some complex work and return something that need a
long sentence to describe
"""
Run Code Online (Sandbox Code Playgroud)
然后我发现我需要在docstring的第三行插入一些东西.插入后,宽度远远超过80个字符,所以我手动打破它.然而,在断开之后,第四行的长度远小于80,我必须合并第四行和第五行,并在适当的位置将其分解,以便每行不会太短和太长.如果有更多行,这项工作会变得更烦人.
当我发现我必须在第三行删除某些内容时,会发生类似的问题.是否有任何技巧或PyCharm插件可以解决这个问题?由于我在PyCharm中使用vim插件,vim的技巧也很棒.
我想高频率备份数据库,但是全量备份的成本是不能接受的。SQLite 似乎没有 API 可以直接进行增量备份。但我发现有一个数据更改通知回调似乎很有帮助。 https://www.sqlite.org/c3ref/update_hook.html 回调的参数是操作类型、数据库名称、表名称和行 ID。但是,我不知道是否可以通过这些信息生成该行日期的备份信息(例如SQL语句),而无需了解表的详细信息。这意味着,对于不同结构的表,是否有一种通用的方法可以为该操作生成备份?我知道有一些例外情况不会调用回调,如果我定期进行完整备份,我认为这是可以接受的。
我正在学习通过 sqlite3 在 python 中使用 sqlite。
应该在关闭连接之前调用插入、更新支持事务和 commit() 等 SQL 操作,否则数据库中不会发生任何变化。但是,“创建表”不支持事务,或者创建表是自动提交的。例如,
con.execute('create table xxx (xxxx)')
Run Code Online (Sandbox Code Playgroud)
该表将立即创建。更重要的是,如果我们在创建表之前执行插入语句,而没有 commit()。然后执行创建表,插入将被提交,以及'创建表'。
我在文档https://docs.python.org/2/library/sqlite3.html#sqlite3-types、https://www.python.org/dev/peps/pep-0249/# 中没有发现任何有关此类行为的内容id3或https://sqlite.org/atomiccommit.html。
我的问题是: 1. 有没有其他操作像这样?2. 其他 DBMS 的行为是什么?3. 有没有这方面的规范?
python ×4
sqlite ×2
backup ×1
docker ×1
editor ×1
matplotlib ×1
mayavi ×1
memoization ×1
pycharm ×1
python-3.x ×1