我有一个现有的程序,它有自己的主循环,并根据它收到的输入进行计算 - 让我们说来自用户,使其变得简单.我想现在远程而不是本地进行计算,我决定在Twisted中实现RPC.
理想情况下,我只想更改我的一个函数,比如doComputation(),调用twisted来执行RPC,获取结果并返回.程序的其余部分应该保持不变.但是我怎么能做到这一点呢?当我打电话时,Twisted劫持主循环reactor.run().我还读到你没有扭曲的线程,所有的任务按顺序运行,所以我似乎不能创建一个LoopingCall并以这种方式运行我的主循环.
我创建了一个使用pywin32的简单程序.我想将它部署为可执行文件,所以我py2exe它.我也不想要大量的文件,所以我设置bundle_files为1(意味着将所有内容捆绑在一起).但是,当我尝试运行它时,我得到:
Traceback (most recent call last):
File "pshelper.py", line 4, in <module>
File "zipextimporter.pyc", line 82, in load_module
File "win32.pyc", line 8, in <module>
File "zipextimporter.pyc", line 98, in load_module
ImportError: MemoryLoadLibrary failed loading win32ui.pyd
Run Code Online (Sandbox Code Playgroud)
在我的安装脚本中,我尝试过packages=["win32ui"]并includes=["win32ui"]作为选项,但这没有帮助.如何让py2exe包含win32ui.pyd?
如果我不要求它捆绑文件我没有这个问题,所以我现在可以这样做,但我想知道如何让它正常工作.
我在各个地方检查了一个存储库.我有一个文件夹X,它是另一个存储库的外部.我希望X是本地的.还有其他问题,但它们似乎没有遇到我的困难.
我做的是编辑了svn:externals并删除了该行.然后我提交了回购.然后我拿了文件夹,删除了.svn它中的所有条目(使其成为常规文件夹),svn add编辑它,然后提交.这很好.
但是,当我更新回购的另一个结账时,我遇到了问题.第一个错误是这样的:
UUID mismatch: existing directory XXX was checked out from a different repository.
Run Code Online (Sandbox Code Playgroud)
好的,已经svn up失败了,但我尝试删除文件夹并重新更新.现在它管理重新获取所有内容,但现在我收到一个新错误:
Can't remove file XXX: Access is denied
Run Code Online (Sandbox Code Playgroud)
我再次尝试更新,没有任何反应.我删除该文件夹中的文件并从根目录再次更新,没有任何反应.我删除了文件夹X,没有任何反应 - 所以它似乎忘了它!我唯一的办法就是删除X的根目录并svn up从一个级别下来(因为所有这些也发生在一个也是外部的子文件夹中).
不好......我不想在签出此存储库的所有站点上执行某些手动rigamarole.该怎么办?
对于我的树视图中的每一行,我想要彼此相邻的4个图像按钮.它们就像单选按钮一样,只有一个可以一次激活.每个按钮都有一个"开"和"关"图像.
我该怎么做呢?我想出了如何将图像放在那里,以及如何放置togglebuttons,但这似乎需要更多的努力,因为没有预先构建的cellrenderer做我想要的.
基本上解决我的问题的是弄清楚如何在gtk.treeview可点击的图像中制作图像.有任何想法吗?
即:打开记事本,字体选择为“Arial,11号”,仔细输入“这只是一个测试”字样,截图如下:
输入并运行以下 Python 代码:
import ImageFont, ImageDraw, Image
im = Image.open("c:/textimg.png") #the above image
pilfont = ImageFont.truetype("arial.ttf", 11)
compimg = Image.new("RGB", im.size, (255, 255, 255))
draw = ImageDraw.Draw(compimg)
draw.text((0,0), "this is just a test", (0,0,0), font=pilfont)
compimg.save("c:/compimg.png")
Run Code Online (Sandbox Code Playgroud)
然而结果却大相径庭:
它不仅尺寸错误,而且还有轻微的阴影,而记事本渲染清晰且没有像素边界。
我怎样才能让它像记事本一样呈现?我在 pygame 上也遇到了这个确切的问题,所以我想我在这里缺少对 TTF 的一些基本了解。
更新:我再次尝试使用 pygame。它做同样的事情。它确实有一个关闭抗锯齿的选项,但看起来它只是根据某个阈值去掉了它会抗锯齿的任何像素。我得到的最接近的近似值是使用大小 15。代码是:
pygfont = pygame.font.Font(r"c:\windows\fonts\arial.ttf", 15)
surf = pygfont.render("this is just a test", False, (0,0,0), (255,255,255))
pygame.image.save(surf, r"c:\pygameimg.png")
Run Code Online (Sandbox Code Playgroud)
和结果(记事本原件放在上面进行比较):
杀了我 http://tinypic.com/images/404.gif
Gah 为什么我不能立即提供赏金?
更新:这里比较了所有方法:
PIL 15,然后是记事本 11,然后是 pygame 15 anti-alias-off,然后是 pygame 15 anti-alias-on。
PIL 15 …
我想写一个包装类,除了添加'reason'属性之外,它取一个值并且表现得像它一样.我有这样的想法:
class ExplainedValue(object):
def __init__(self, value, reason):
self.value = value
self.reason = reason
def __getattribute__(self, name):
print '__getattribute__ with %s called' % (name,)
if name in ('__str__', '__repr__', 'reason', 'value'):
return object.__getattribute__(self, name)
value = object.__getattribute__(self, 'value')
return object.__getattribute__(value, name)
def __str__(self):
return "ExplainedValue(%s, %s)" % (
str(self.value),
self.reason)
__repr__ = __str__
Run Code Online (Sandbox Code Playgroud)
但是,双下划线函数似乎没有被捕获__getattribute__,例如:
>>> numbers = ExplainedValue([1, 2, 3, 4], "it worked")
>>> numbers[0]
Traceback (most recent call last):
File "<pyshell#118>", line 1, in <module>
numbers[0]
TypeError: 'ExplainedValue' …Run Code Online (Sandbox Code Playgroud) 我目前正在使用hash整数和字符串元组(以及整数和字符串的嵌套元组等)来计算某些对象的唯一性.除非可能存在哈希冲突,我想 - hash这些数据类型的函数是否保证为不同版本的Python返回相同的结果?
我正在尝试使用Docker运行ELK堆栈.我发现docker-elk已经为我设置了配置,使用docker-compose.
我想将elasticsearch数据存储在主机而不是容器上.根据docker-elk的自述文件,我在volumes以下elasticsearch部分添加了一行docker-compose.yml:
elasticsearch:
image: elasticsearch:latest
command: elasticsearch -Des.network.host=0.0.0.0
ports:
- "9200"
- "9300"
volumes:
- ../../env/elasticsearch:/usr/share/elasticsearch/data
Run Code Online (Sandbox Code Playgroud)
但是,当我跑步时,docker-compose up我得到:
$ docker-compose up
Starting dev_elasticsearch_1
Starting dev_logstash_1
Starting dev_kibana_1
Attaching to dev_elasticsearch_1, dev_logstash_1, dev_kibana_1
kibana_1 | Stalling for Elasticsearch
elasticsearch_1 | [2016-03-09 00:23:35,193][WARN ][bootstrap ] unable to install syscall filter: seccomp unavailable: your kernel is buggy and you should upgrade
elasticsearch_1 | Exception in thread "main" java.lang.IllegalStateException: Unable to access …Run Code Online (Sandbox Code Playgroud)