为什么python代码运行不了_为什么Python代码能运行但是PyCharm给我画红线?
PyCharm在遇到模塊找不到時,會使用紅色波浪線提醒開發(fā)者。這本來是一個非常好的功能,但卻由于另外一個問題,會給一些Python初學者造成困擾。
這一篇文章,我們講講工作區(qū)導(dǎo)致的這個問題。
首先我們創(chuàng)建一個login.py文件,它的內(nèi)容如下:def login(): print('登錄服務(wù)器')
再創(chuàng)建一個 main.py,它的內(nèi)容如下:from login import login
print('準備登錄服務(wù)器')login()
這兩個文件的文件結(jié)構(gòu)如下圖所示:
此時,你在PyCharm中打開main.py,你就會發(fā)現(xiàn)紅色的波浪線,如下圖所示。
此時如果使用PyCharm來運行這個main.py文件:
你會發(fā)現(xiàn)PyCharm運行程序毫無問題:
所以PyCharm有問題?它胡亂報錯嗎?
實際上不是這樣的。
Python有一個工作區(qū)的概念,在默認情況下,當你使用 python xxx.py運行一個.py文件時,工作區(qū)就是你運行的這個.py文件所在的文件夾。由于login.py和main.py文件是放在同一個文件夾里面的,所以當你直接運行main.py時,Python能夠正確知道 fromloginimportlogin是指從和main.py在一起的這個login.py文件中導(dǎo)入login函數(shù)。所以一切都是正常的。
當時當你使用PyCharm打開一個項目文件夾時,由于還沒有運行這個項目中的某個文件,所以PyCharm會以當前打開的這個項目文件夾為工作區(qū)。
在這個例子中,PyCharm會以 代碼練習這個文件夾作為工作區(qū)。所以當我在main.py中寫 fromloginimportlogin的時候,PyCharm會從 代碼練習這個文件夾里面去需找login.py文件。顯然,由于login.py在chapter_1文件夾里面,不在 代碼練習這個文件夾里面,所以PyCharm找不到,于是就會畫紅色波浪線。
這種情況特別常見于初學者學習別人代碼的情況。例如一個Python初學者,他會把所有的爬蟲相關(guān)代碼都放在名為 爬蟲代碼的文件夾里面,然后他下載了我的一個知乎爬蟲項目,這個項目的代碼是在一個叫做 ZhihuSpider文件夾里面的。此時,他把 ZhihuSpider文件夾放在 爬蟲代碼文件夾里面,再用PyCharm打開 爬蟲代碼文件夾,那么他就會看到 ZhihuSpider項目代碼里面有大量的紅色波浪線。這不是代碼有問題,而是PyCharm自動識別的工作區(qū)不正確導(dǎo)致的。
要解決這個問題也非常簡單。打開PyCharm的項目設(shè)置,定位到 ProjectStructure,如下圖所示。
點擊紅色箭頭指向的x符號,刪除當前的內(nèi)容,并添加新的內(nèi)容,如下圖所示:
把真正的項目文件夾路徑添加進去,如下圖所示:
點擊 OK按鈕,回到PyCharm,發(fā)現(xiàn)它已經(jīng)可以正確找到 login.py文件了。如下圖所示,紅色波浪線消失。
在下一篇文章中,我們會講到由于虛擬環(huán)境不一致導(dǎo)致Python代碼能運行,但是PyCharm畫紅色波浪線的情況。
總結(jié)
以上是生活随笔為你收集整理的为什么python代码运行不了_为什么Python代码能运行但是PyCharm给我画红线?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 甜度等级
- 下一篇: python的计算_python 计算方