首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我可以从python导入模块bs4或请求,而不能从python解释器导入请求呢?

为什么我可以从python导入模块bs4或请求,而不能从python解释器导入请求呢?
EN

Stack Overflow用户
提问于 2016-05-26 12:16:26
回答 1查看 496关注 0票数 0

当我从脚本中运行模块BeautifulSoup或直接在python中运行它时,我可以导入模块或请求,而不会出现任何问题:

代码语言:javascript
复制
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解释器从命令提示符执行此操作时,会遇到以下错误:

代码语言:javascript
复制
pi@raspberrypi:~/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'

我读了很多论坛,但没有真正理解是什么导致了这一切,最重要的是,如何解决这个问题。

非常感谢你的帮助,贝斯特,马蒂厄

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-29 14:25:32

它并不是控制台上的真正空闲的Python,而是进程的当前工作目录所在的位置。因为在wich目录中,您启动了控制台Python,因此有一个string.py,它从标准库中“阴影”string模块。从该文件夹中删除该string.py (如果存在string.pyc ),其他模块将再次找到标准的string模块。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37460610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档