1. 程式人生 > >20180925:問題:pycharm中匯入flask-wtf失敗,報錯:module 'pip' has no attribute 'main'

20180925:問題:pycharm中匯入flask-wtf失敗,報錯:module 'pip' has no attribute 'main'

前後臺頁面搭建完成,開始後臺邏輯操作。 在開始之前,根據視訊要匯入flask-wtf模組。在pycharm中匯入flask-wtf時,卻顯示報錯,錯誤最後一句提示:module 'pip' has no attribute 'main' 試圖在Termianl面板中pip install flask-wtf,匯入正常,pip list 也看到了這個包。在cmd命令模式中pip list 中也看到這個包。 但這種匯入是無法在pycharm中看到的,也就是說pycharm中沒有這個包,必須通過Pycharm-file-setting中的Project Interpreter中匯入才能被pycharm所用! 通過百度發現,原來原因為:pip 10.0版本後,沒有“main()”這個模組了,解決辦法有2個(我採用第二種方法解決了問題。):

1、看看你的pip 版本,10.0及以上版本沒有main(),考慮降個版本:

python -m pip install --upgrade pip==9.0.3,降低了版本之後再次進行安裝就OK了!

2、修改pycharm安裝目錄下 helpers/packaging_tool.py檔案(我的預設位置為:C:\Program Files\JetBrains\PyCharm 2018.1\helpers\),找到如下程式碼修改後,再在pycharm中操作新增模組即可:

提示:開啟方式為記事本,用快捷鍵ctrl+F查詢

def do_install(pkgs):
    try:
        import pip
    except ImportError:
        error_no_pip()
    return pip.main(['install'] + pkgs)


def do_uninstall(pkgs):
    try:
        import pip
    except ImportError:
        error_no_pip()
    return pip.main(['uninstall', '-y'] + pkgs)

修改為如下,儲存即可。

def do_install(pkgs):
    try:
        # import pip
        try:
            from pip._internal import main
        except Exception:
            from pip import main
    except ImportError:
        error_no_pip()
    return main(['install'] + pkgs)
    
def do_uninstall(pkgs):
    try:
        # import pip
        try:
            from pip._internal import main
        except Exception:
            from pip import main
    except ImportError:
        error_no_pip()
    return main(['uninstall', '-y'] + pkgs)