是否有python的文件命名规则?

时间:2014-11-17 05:59:55

标签: python python-3.x python-module

环境     Python版本:3.4.2     操作系统版本:OS X Mavericks

您好,

我想用python做一些网络抓取示例。

所以,我创建了脚本文件并命名为' html.py'。 (在我的项目目录中)

但是,当我用python3执行它时,会产生这样的错误。

-------------------------------------------错误消息 - ---------------------------------------------

Traceback (most recent call last):
  File "html.py", line 1, in <module>
      from bs4 import BeautifulSoup
  File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/bs4/__init__.py", line 30, in <module>
      from .builder import builder_registry, ParserRejectedMarkup
  File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/bs4/builder/__init__.py", line 4, in <module>
      from bs4.element import (
  File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/bs4/element.py", line 5, in <module>
      from bs4.dammit import EntitySubstitution
  File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/bs4/dammit.py", line 11, in <module>
      from html.entities import codepoint2name
  File "/Users/tester/Project/Python/html.py", line 1, in <module>
      from bs4 import BeautifulSoup
ImportError: cannot import name 'BeautifulSoup'

但是,我安装了#BeautifulSoup4&#39;通过&#39; sudo pip3安装BeautifulSoup4&#39;。

并且,我检查它是否安装在正确的路径中。

奇怪的是我尝试导入了#BeautifulSoup4&#39;在不同的目录中使用python3 shell模式 (例如,不在我的项目目录中),

它没有错误。

只有在我执行该目录中的脚本文件时才会出现错误。 (其中&#39; html.py&#39;存在)

那么,为什么会这样呢?

而且,当我更改脚本文件名时,错误也会消失。 (html.py - &gt; test_html.py)

文件名出了什么问题?

我不允许将模块名称用作我的脚本文件吗?

1 个答案:

答案 0 :(得分:2)

htmla standard module的名称。

我猜测,在某些时候,BeautifulSoup正在导入这个html模块。但是,Python(默认情况下)将首先在您运行的脚本文件的目录中查找模块。因此,它会找到并导入您的html.py而不是标准模块。

来自docs on sys.path

  

在程序启动时初始化,此列表的第一项,   path [0],是包含用于的脚本的目录   调用Python解释器

您可以更改脚本的名称(好主意)或修改sys.path以更改Python查找模块的位置(不好主意)。