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

时间:2017-07-09 09:44:19

标签: python-3.x python-requests pycharm python-idle

我正在尝试创建一个使用bs4和请求库的Web抓取程序。我注意到,每当pycharm遇到import requests时,它就会卡住并在我按返回时抛出错误。错误是:

>>> import requests

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\HP\64bit\lib\site-packages\requests\__init__.py", line 43, in <module>
    import urllib3
  File "C:\Users\HP\64bit\lib\site-packages\urllib3\__init__.py", line 8, in <module>
    from .connectionpool import (
  File "C:\Users\HP\64bit\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窗口中执行相同操作就可以了 我使用的是Windows 10 64位,python 64位3.6.2rc1&amp; Pycharm 2017.1.4社区版。

1 个答案:

答案 0 :(得分:0)

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

由于混乱的PYTHONPATH,string导入请求会从stdlib中导入string.py而不是相同的模块(回溯清楚地显示了这一点)。

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