2016-05-26 66 views
0

我可以导入模块BeautifulSoup或请求没有任何问题,当我从我的脚本运行或在Python IDLE壳直接做到这一点:为什么我可以从python IDLE shell导入模块bs4或请求,但不能从python解释器导入?

Python 2.7.9 (default, Mar 8 2015, 00:52:26) 
[GCC 4.9.2] on linux2 
Type "copyright", "credits" or "license()" for more information. 
>>> import bs4 
>>> bs4 
<module 'bs4' from '/usr/local/lib/python2.7/dist-packages/bs4/__init__.pyc'> 
>>> import requests 
>>> requests 
<module 'requests' from '/usr/lib/python2.7/dist-packages/requests/__init__.pyc'> 

然而,当我使用Python解释这样做从命令提示符我遇到了以下错误:

[email protected]:~/Desktop/A/C $ python 
Python 2.7.9 (default, Mar 8 2015, 00:52:26) 
[GCC 4.9.2] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import bs4 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/local/lib/python2.7/dist-packages/bs4/__init__.py", line 30,  in <module> 
    from .builder import builder_registry, ParserRejectedMarkup 
    File "/usr/local/lib/python2.7/dist-packages/bs4/builder/__init__.py",   line 4, in <module> 
    from bs4.element import (
    File "/usr/local/lib/python2.7/dist-packages/bs4/element.py", line 3, in <module> 
    from pdb import set_trace 
    File "/usr/lib/python2.7/pdb.py", line 9, in <module> 
    import cmd 
    File "/usr/lib/python2.7/cmd.py", line 53, in <module> 
    IDENTCHARS = string.ascii_letters + string.digits + '_' 
AttributeError: 'module' object has no attribute 'ascii_letters' 
>>> import requests 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/lib/python2.7/dist-packages/requests/__init__.py", line 55, in <module> 
    import urllib3 
    File "/usr/lib/python2.7/dist-packages/urllib3/__init__.py", line 10, in <module> 
    from .connectionpool import (
    File "/usr/lib/python2.7/dist-packages/urllib3/connectionpool.py", line 29, in <module> 
    from .packages.ssl_match_hostname import CertificateError 
    File "/usr/lib/python2.7/dist-packages/urllib3/packages/__init__.py", line 5, in <module> 
    from ssl import CertificateError 
    File "/usr/lib/python2.7/ssl.py", line 90, in <module> 
    import textwrap 
    File "/usr/lib/python2.7/textwrap.py", line 40, in <module> 
    class TextWrapper: 
    File "/usr/lib/python2.7/textwrap.py", line 82, in TextWrapper 
    whitespace_trans = string.maketrans(_whitespace, ' ' * len(_whitespace)) 
AttributeError: 'module' object has no attribute 'maketrans' 

我看了很多论坛,但并没有真正理解什么可能会造成这一点,最重要的是,如何解决它。

非常感谢您的帮助, 最佳, 马修

回答

1

这是不是真的IDLE与Python命令行控制台上,但其中用于处理当前工作目录。因为在启动控制台Python shell的目录中有一个string.py,它可以从标准库中“模糊”string模块。从该文件夹和其他模块中删除string.py(和string.pyc,如果它存在)将再次找到标准string模块。

+0

BlackJack上的斑点。非常感谢答案!我会注意从现在开始如何命名我的脚本... –

相关问题