我有一个python模块,需要能够在Windows和Linux上运行。 运行时响应某些键盘的“热键”。 这是一个Python 3.3脚本。
在我的类构造函数中,我执行以下操作:
self.setup_stdin()
函数setup_stdin是这样的:
def setup_stdin(self): self.osname = os.name if self.osname == 'posix': self.setup_posix_stdin() elif self.osname == 'nt': self.setup_nt_stdin()
当我在Linux上运行时,我对setup_posix_stdin没有任何问题,它只是使stdin非阻塞,所以我可以处理按键。
dlltool:无法创build.lib文件:libpython27.a:无效的bfd目标
通过authentication将文件复制到java中的本地networking中的计算机上
打开没有菜单栏的浏览器窗口(JavaScript?)
如何使用time.h获取UTCTime秒数的小数部分
计算程序执行时间
setup_nt_stdin如下:
def setup_nt_stdin(self): import msvcrt
但是,当我在Windows 7上运行,我的程序炸弹
NameError: global name 'msvcrt' is not defined
为了解决这个问题,当我在Windows上运行时,我将import语句移到了文件的顶部,并用passreplace了setup_nt_stdin函数体,并且它工作正常。
我以为我可以从一个函数导入。 这个函数是在一个类里面的,还有一些其他的语法我错过了吗?
通过一个dynamic的表单和面板循环,并检查单选button是否检查
获取已安装应用程序的列表
如何在Windows编程中触发最大化/最小化
无法删除Tomcat / Windows下的Jenkins中的pom.xml
import语句只在本地作用域中绑定导入模块的名称。
为了解决这个问题,你可以这样做:
def setup_nt_stdin(self): global msvcrt import msvcrt
虽然考虑到你可以多次import某些东西而不再执行任何操作,而且在其他地方实际使用名称msvcrt之前需要检查操作系统,所以在需要每个特定窗口的函数中import msvcrt可能更有意义它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。