2016-05-26 150 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上的斑點。非常感謝答案!我會注意從現在開始如何命名我的腳本... –

相關問題