日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

python?import模塊時有錯誤紅線的原因_python

作者:啊啊啊啊懶 ? 更新時間: 2022-04-16 編程語言

import模塊時有錯誤紅線的解決

?

前情提要

概念:

在一個文件中代碼越長越不容易維護,為了編寫可維護的代碼,我們把很多函數分組,分別放到不同的文件里,這樣每個文件包含的代碼就相對較少,很多編程語言都采用這種組織代碼的方式。在python中,一個py文件就稱之為一個模塊(Module)

好處:

1、最大的好處是提高了代碼的可維護性

2、編寫代碼不必從零開始。當一個模塊編寫完畢,就可以在其他地方調用

分類:

1、python’標準庫 2、第三方模塊 3、應用程序自定義

使用軟件為pycharm。在python項目執行的時候,會出現導入模塊錯誤(代碼上表示出紅色曲線)

原因及解決辦法

1、常見的為本模塊沒有安裝,所以要去網上搜索該模塊的安裝方法。(很多可以通過pip解決)

2、若該模塊為自己編寫,則需看他是否跟執行文件是否在一個文件夾下。

例1:

bin.py是執行文件,想在bin.py中導入cal.py運行它中的run()函數。


在這里插入圖片描述

如果只寫import會報錯,因為兩個文件存在于兩個文件夾中

在這里插入圖片描述

所以這種情況在導入模塊的時候要寫成from 文件夾名 import 文件名

即from module1 import cal

例2:

bin.py是執行文件,想在bin.py中導入main.py,在main中再導入cal.py運行cal.py的run()函數。簡單點說就是在1中調用2在從2中調用3

在這里插入圖片描述

這時,bin中的代碼是:

注:這樣導入的是正確的,但是有的時候pycharm也會給它標紅線如下圖。直接執行就好不用管(除非你導入本身有問題)


在這里插入圖片描述

from module1 import main
main.run()

main中的代碼是:

import cal
def run():
    print(cal.add(3,7))
    print('這里是main')

cal中的代碼是:

def add(a,b):
    print('這里是cal,%d+%d=%d'%(a,b,a+b))

注意:

這樣執行是有錯誤的:

Traceback (most recent call last):
? File "E:/python_workspace/test/bin.py", line 1, in <module>
? ? from module1 import main
? File "E:\python_workspace\test\module1\main.py", line 1, in <module>
? ? import cal
ModuleNotFoundError: No module named 'cal'

這時,我們要格外注意,在main中導入cal模塊時寫的是import cal。這樣是錯誤的。

原因及解決:

我們的執行文件是bin那么在執行的的時候所有的導入路徑都是基于執行文件的。所以盡管bin和main在同一文件夾下,依然要寫成from module import cal。(改完你會發現以下現象,不用管,這是軟件問題,保證導入路徑沒錯就可以執行)

在這里插入圖片描述

import紅線但是能運行

解決方法

包右鍵-Mark Directory as-Sources Root?

原文鏈接:https://blog.csdn.net/weixin_44017891/article/details/104750752

欄目分類
最近更新