【发布时间】:2011-06-16 20:44:15
【问题描述】:
我是 100% 的 Python 新手,我在 Windows 和 Linux 之间切换时遇到了这个关于兼容性的奇怪问题。我实现了一个小程序,它实现了一个 TCP/IP 套接字,该套接字与支持 TCP/IP 上的服务器套接字的设备进行通信。我的程序在 Windows 上运行时运行良好,因此我决定在 Linux 上对其进行测试,因为最终我想在 CRONTAB 上将它作为计划任务运行,从服务器获取信息并导出到 XML。这是我尝试在 Linux 上(在 python 2.6、2.7 和 3.1 下)编译相同代码时收到的奇怪编译错误
python2.7 weatherScript.py
Traceback (most recent call last):
File "weatherScript.py", line 1, in <module>
import socket
File "/media/SWAP/weatherData/socket.py", line 117, in <module>
except socket.error, msg:
AttributeError: 'module' object has no attribute 'error'
相应的代码段是
import socket
import sys
import re
from time import sleep
from xml.dom.minidom import Document
和
try:
comSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
except socket.error, msg:
sys.stderr.write("[ERROR] %s\n" % msg[1])
sys.exit(1)
#connecting to weather station
try:
comSocket.connect(())
except socket.error, msg:
sys.stderr.write("[ERROR] %s\n" % msg[1])
sys.exit(2)
即使我删除了 try-catch,问题仍然存在。我不确定 Windows 或 Linux 之间是否存在编译不兼容。有什么帮助吗?
其他问题是:我想在 CRONTAB 下运行那个 python 程序,有什么我应该改变或包含的东西,以便我可以将它作为“脚本”或类似的方式运行吗?
非常感谢!
【问题讨论】:
-
这在 Python 3.1 上不起作用很奇怪,你能分享更多关于你的目录结构和模块组织的信息吗?
weatherScript.py位于哪个目录中,您的sys.path是什么(或至少与weatherData/socket.py对应的部分)?
标签: python windows linux compilation