assert sys.modules[modname] is old_mod

使用了pypiwin32 包中的pythoncom的时候,当跑在apache下,日志报错:

[Thu Aug 27 17:06:44 2015] [error] [client 127.0.0.1] import pywintypes
[Thu Aug 27 17:06:44 2015] [error] [client 127.0.0.1] File "C:\\Python27\\lib\\site-packages\\win32\\lib\\pywintypes.py", line 124, in <module>
[Thu Aug 27 17:06:44 2015] [error] [client 127.0.0.1] __import_pywin32_system_module__("pywintypes", globals())
[Thu Aug 27 17:06:44 2015] [error] [client 127.0.0.1] File "C:\\Python27\\lib\\site-packages\\win32\\lib\\pywintypes.py", line 114, in __import_pywin32_system_module__
[Thu Aug 27 17:06:44 2015] [error] [client 127.0.0.1] assert sys.modules[modname] is old_mod
[Thu Aug 27 17:06:44 2015] [error] [client 127.0.0.1] AssertionError

解决方案:

Temporary solution is comment out two lines in win32/lib/pywintypes.py:

if sys.version_info < (3,0):

    #注释掉下面两行就ok了,不要忘记pass!!!!!

    #assert sys.modules[modname] is old_mod 

    #assert mod is old_mod

    pass

else:

    assert sys.modules[modname] is not old_mod

    assert sys.modules[modname] is mod

    # as above - re-reset to the *old* module object then update globs.

    sys.modules[modname] = old_mod

    globs.update(mod.__dict__)

  

时间: 2024-10-17 11:13:31

assert sys.modules[modname] is old_mod的相关文章

sys.modules[__name__]

A way to get a handle to the current running module in Python: import sys module = sys.modules[__name__] it really only works if you are doing the whole sys.modules litany in the very module you want to get a handle to. 所以,getattr(sys.modules[__name_

用Python写WebService接口并且调用

一.用ladon框架封装Python为Webservice接口 另用soaplib实现请看:    http://www.jianshu.com/p/ad3c27d2a946 功能实现的同时,希望将接口开放给别人,而封装python接口的一个再简单不过的框架Ladon,而且提供不同的协议,包括SOAP和Json等格式的接口.本篇紧接着上上篇(Django部署)的.虽然很简单,但是官网的文档还是不够详细,下面介绍我配置的过程及遇到的问题. 1.安装Ladon包 使用Ladon框架,首先需要安装La

使用 /sys 文件系统访问 Linux 内核

使用 /sys 文件系统访问 Linux 内核 sysfs 虚拟文件系统提供了一种比 proc 更为理想的访问内核数据的途径 sysfs 与 /sys sysfs 文件系统总是被挂载在 /sys 挂载点上.虽然在较早期的2.6内核系统上并没有规定 sysfs 的标准挂载位置,可以把 sysfs 挂载在任何位置,但较近的2.6内核修正了这一规则,要求 sysfs 总是挂载在 /sys 目录上:针对以前的 sysfs 挂载位置不固定或没有标准被挂载,有些程序从 /proc/mounts 中解析出 s

使用beanstalkd实现定制化持续集成过程中pipeline - 持续集成系列

持续集成是一种项目管理和流程模型,依赖于团队中各个角色的配合.各个角色的意识和配合不是一朝一夕能练就的,我们的工作只是提供一种方案和能力,这就是持续集成能力的服务化.而在做持续集成能力服务化的过程中,最核心的一点就是,如何实现一个可定制化的任务流,即所谓的pipeline. 在传统的持续集成工具实现了pipeline功能,以供串联上下游job,并把多个job联系成一次完整的构建,例如jenkins的pipeline插件. 但是各种持续集成工具,或多或少都有自己的短板,总结起来如下: 1.配置并不

根文件系统的层级结构

文件系统的层级结构 FHS:Filesystem Hierarchy Standard(文件系统层次化标准) 目录 / 根目录 /bin: 所有用户可用的基本命令程序文件: /sbin:供系统管理使用的工具程序 /boot:引导加载器必须用到的各静态文件:例如:kernel   时常是一个单独的分区 /dev: 存储特殊文件或设备文件: 设备有两种类型:字符设备(线性设备),块设备(随机设备): 硬盘,分区,键盘,鼠标,USB,tty等所有的设备文件都放在这个目录. /etc:系统程序的配置文件

2.1 Directory Description目录描述

Directory Description目录描述 **bin**Essential command binaries 所有用户可用的基本命令的二进制程序 **boot**Static files of the boot loader 引导加载器必须用到的静态文件 ,kernel initramfs(initrd),grub等. **dev**Device files 存储特殊文件或设备文件 设备有两种类型: 块设备(随机设备).字符设备(线性设备) 硬盘 .硬盘分区.usb闪存盘 /dev/s

sys和os modules

http://blog.csdn.net/pipisorry/article/details/42167683 Python的系统模块包括:sys, os, glob, socket, threading, _thread, queue, time, timeit, subprocess, multiprocessing, signal, select, shutil, tempfile等. 大多数系统级接口集中在:sys和os两个模块. sys模块包含: 平台与版本的信息,如sys.platf

【Python模块学习】sys模块

sys模块的操作如下: 1 sys.argv # 实现从程序外部向程序传递参数. 2 sys.exit([arg]) # 程序中间的退出,arg=0为正常退出. 3 sys.getdefaultencoding() # 获取系统当前编码,一般默认为ascii. 4 sys.setdefaultencoding() # 设置系统默认编码,执行dir(sys)时不会看到这个方法,在解释器中执行不通过,可以先执行reload(sys),在执行 setdefaultencoding('utf8'),此时

Python中os和sys模块

系统相关的信息模块: import sys sys.argv 是一个 list,包含所有的命令行参数. sys.stdout sys.stdin sys.stderr 分别表示标准输入输出,错误输出的文件对象. sys.stdin.readline() 从标准输入读一行 sys.stdout.write("a") 屏幕输出a sys.exit(exit_code) 退出程序 sys.modules 是一个dictionary,表示系统中所有可用的module sys.platform