请求模块在 pycharm 中不工作(仅)

requests module not working in pycharm (only)

我试图创建一个网络抓取程序,它使用 bs4 和请求库。我注意到每当 pycharm 遇到 import requests 它就会卡住并在我按下 return 时抛出错误。错误是:

>>> import requests

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\HPbit\lib\site-packages\requests\__init__.py", line 43, in <module>
    import urllib3
  File "C:\Users\HPbit\lib\site-packages\urllib3\__init__.py", line 8, in <module>
    from .connectionpool import (
  File "C:\Users\HPbit\lib\site-packages\urllib3\connectionpool.py", line 3, in <module>
    import logging
  File "C:\Users\HP\AppData\Local\Programs\Python\Python36\Lib\logging\__init__.py", line 28, in <module>
    from string import Template
  File "C:\Users\HP\PycharmProjects\Automate\string.py", line 28, in <module>
    t = int(input())
ValueError: invalid literal for int() with base 10: ''
>>>

尝试在 IDLE shell 或 cmd window 中做同样的事情就可以了 我正在使用 windows 10 64 位,python 64 位 3.6.2rc1 & Pycharm 2017.1.4 社区版。

你的 PYTHONPATH 搞砸了,这可能是由于 PyCharm 将项目根添加到 PYTHONPATH 的选项(该选项在 "run" 设置中)。

由于混乱的 PYTHONPATH,请求中的 string 导入导入了您的 string.py 而不是来自 stdlib 的相同模块(顺便说一下,回溯清楚地表明了这一点)。


最简单的解决方案?没有顶级 .py 文件,将它们放在一个包中。这样只有您的包可以作为 PYTHONPATH 中的顶级包导入,但您最终不会拥有大量新的顶级模块。