2016-08-23 191 views
1

我有一個問題,當嘗試使用請求LIB導入錯誤模塊

import requests 

r = requests.get('http://www.python.org/') 
print(r) 

在那之後,我得到了以下錯誤

Traceback (most recent call last): 
    File "C:/Users/admin/Documents/alex/test.py", line 3, in <module> 
    import requests 
    File "C:\Program Files\python3\lib\site-packages\requests\__init__.py", line 53, in <module> 
    from .packages.urllib3.contrib import pyopenssl 
    File "C:\Program Files\python3\lib\site-packages\requests\packages\__init__.py", line 27, in <module> 
    from . import urllib3 
    File "C:\Program Files\python3\lib\site-packages\requests\packages\urllib3\__init__.py", line 8, in <module> 
    from .connectionpool import (
    File "C:\Program Files\python3\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 35, in <module> 
    from .connection import (
    File "C:\Program Files\python3\lib\site-packages\requests\packages\urllib3\connection.py", line 44, in <module> 
    from .util.ssl_ import (
    File "C:\Program Files\python3\lib\site-packages\requests\packages\urllib3\util\__init__.py", line 20, in <module> 
    from .retry import Retry 
    File "C:\Program Files\python3\lib\site-packages\requests\packages\urllib3\util\retry.py", line 15, in <module> 
    log = logging.getLogger(__name__) 
AttributeError: module 'logging' has no attribute 'getLogger' 

我不明白爲什麼會這樣呢?請幫幫我。

+0

只是出於好奇(並幫助解決問題) - 運行代碼的文件是如何叫什麼名字? –

+0

我的文件 - test.py –

+0

任何其他文件在名爲'logging.py'的同一目錄中? –

回答

2

你的問題如下

  1. 你安裝的Python中的一個非常壞
  2. C:\Program Files\python3\lib\site-packages\requests\packages\urllib3\util\retry.py嘗試導入logging它導入錯誤的文件。可能發生這種情況的原因有:
    • 在您運行test.py的目錄中有一個文件叫做logging.py。在這種情況下,您需要重命名它,以便Python庫中的logging被導入,而不是您的。從Python路徑中的一個目錄中
    • 還有就是文件名爲logging.py連帶發現logging.py之前模塊實際需要

要檢查什麼logging被進口,寫出下面簡單的程序

import logging 
import os.path 

print os.path.abspath(logging.__file__) 

無論打印什麼,都是您的logging文件的路徑。如果它不是沿着...\Python\\Python36\\lib\\logging\\__init__.py的行,則會導入錯誤的文件,並且您必須替換/重命名它

+0

謝謝。是的... logging.py文件在我運行test.py的目錄中......我重命名它並且正確。 –