在 python 2.7 中导入 zipfile 模块时出现语法错误
Posted
技术标签:
【中文标题】在 python 2.7 中导入 zipfile 模块时出现语法错误【英文标题】:I am getting a syntax error while importing the zipfile module in python 2.7 【发布时间】:2016-10-31 17:51:02 【问题描述】:脚本中的python命令:
import zipfile
屏幕输出
Chetans-MacBook-Pro:work chetankshetty$ python myprog.py
Traceback (most recent call last):
File "myprog.py", line 1, in <module>
import zipfile
File "/Users/chetankshetty/Documents/Work/zipfile.py", line 1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
^
SyntaxError: invalid syntax
Chetans-MacBook-Pro:work chetankshetty$
【问题讨论】:
不是 myprog.py 里面有那个虚假的 DOCTYPE 行,而是 zipfile.py - 并且路径表明它是用户提供的东西,而不是内置的 zipfile 模块。删除那个文件,你不需要它。 谢谢。你是对的。 【参考方案1】:您正在尝试导入内置的 zipfile
模块,但 Python 正在尝试在当前目录中导入名为 zipfile.py 的文件。这是因为Python Module Search Path
来自文档:
当一个名为
包含输入脚本的目录(或当前目录)。spam
的模块被导入时,解释器首先搜索 对于具有该名称的内置模块。如果没有找到,然后搜索 在由 变量sys.path
。sys.path
从这些位置初始化:PYTHONPATH
(目录名称列表,语法与 外壳变量PATH
)。 依赖于安装的默认值。初始化后,Python程序可以修改
sys.path
。目录 包含正在运行的脚本被放置在 搜索路径,在标准库路径之前。 这意味着 该目录中的脚本将被加载,而不是 库目录中的同名。这是一个错误,除非 更换的目的。有关更多信息,请参阅标准模块部分 信息。
Python 不会在内置 zipfile.py 所在的目录中查找,因为它首先找到 work/zipfile.py,它的语法无效,您可能根本不想导入。解决方案是重命名 work/zipfile.py 以便 Python 可以找到正确的文件。
【讨论】:
以上是关于在 python 2.7 中导入 zipfile 模块时出现语法错误的主要内容,如果未能解决你的问题,请参考以下文章
在 ipython/Jupyter notebook 中导入 scikit-learn