首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

练习PYTHON之EVENTLET

eventlet是一个用来处理和网络相关的python库函数,而且可以通过协程来实现并发,在eventlet里,把“协程”叫做 greenthread(绿色线程)。所谓并发,就是开启了多个greenthread,并且对这些greenthread进行管理,以实现非阻塞式的 I/O。比如说用eventlet可以很方便的写一个性能很好的web服务器,或者是一个效率很高的网页爬虫,这都归功于eventlet的“绿色线程”,以及对“绿色线程”的管理机制。更让人不可思议的是,eventlet为了实现“绿色线程”,竟然对python的和网络相关的几个标准库函数进行了改写,并且可以以补丁(patch)的方式导入到程序中,因为python的库函数只支持普通的线程,而不支持协程,eventlet称之为“绿化”。

02

Windows下面制作绿色版的Pytho

首先在某个地方安装安装版的Python,比如虚拟机里,我装的是“python-2.7.1.msi”,然后把安装目录整个拷过来备用。之所以安装版无法做成绿色版,是因为其中的三个主要文件“python.exe”、“pythonw.exe”和“python27.dll(安装在system32目录中)”都依赖于“msvcr90.dll”这个非常恶心的东西。我们需要把它绿色化。 下载并解压缩源代码包,我下载的是“Python-2.7.1.tar.bz2”,然后进入“PCbuild”目录,用Visual Studio 2008打开“pcbuild.sln”文件,注意,“PC”目录下面还有一些早期版本Visual Studio的工程文件,我试过VC6的,根本无法编译,其它没试,不过既然官方都用2008的,那我们也跟着用就是了。 我的Visual Studio 2008装了SP1,编译其中的“python”、“pythoncore”和“pythonw”三个项目得到“python.exe”、“pythonw.exe”和“python27.dll”三个文件,替换备用目录中同名的文件,然后把Visual Studio 2008安装目录中的“VC\redist\x86\Microsoft.VC90.CRT”目录中的“msvcr90.dll”和“Microsoft.VC90.CRT.manifest”也拷到备用目录中,再把备用目录整个拷到一个干净的环境中。执行python.exe,却出错了:无法启动!用Depends工具观察,报依赖错误! 回过头检查编译生成的manifest文件才发现,原来虽然Visual Studio 2008装了SP1,按理CRT已经升级到了9.0.30729.4148版,但是manifest里链接的还是9.0.21022.8版!所以只能将“python”、“pythoncore”和“pythonw”三个项目的属性作如下设置:

02

通过强化学习和官方API制作《星露谷物语》的自动钓鱼mod

这是一个我已经断断续续地研究了很长一段时间的项目。在此项目之前我从未尝试过修改游戏,也从未成功训练过“真正的”强化学习代理(智能体)。所以这个项目挑战是:解决钓鱼这个问题的“状态空间”是什么。当使用一些简单的 RL 框架进行编码时,框架本身可以为我们提供代理、环境和奖励,我们不必考虑问题的建模部分。但是在游戏中,必须考虑模型将读取每一帧的状态以及模型将提供给游戏的输入,然后相应地收集合适的奖励,此外还必须确保模型在游戏中具有正确的视角(它只能看到玩家看到的东西),否则它可能只是学会利用错误或者根本不收敛。

01
领券