我正在尝试创建一个使用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社区版。
答案 0 :(得分:0)
你的PYTHONPATH搞砸了,这可能是由于PyCharm选择将项目根添加到PYTHONPATH(该选项在“运行”设置中)。
由于混乱的PYTHONPATH,string
导入请求会从stdlib中导入string.py
而不是相同的模块(回溯清楚地显示了这一点)。
最简单的解决方案?没有顶级.py文件,将它们放在一个包中。这样,只有你的包可以作为PYTHONPATH中的顶级包导入,但你最终不会有大量新的顶级模块。