最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于Python3的import問題(pycharm可以運行命令行import錯誤)

 更新時間:2020年11月18日 08:35:26   作者:愛摳腳的coder  
這篇文章主要介紹了關(guān)于Python3的import問題(pycharm可以運行命令行import錯誤),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

以前從來沒有寫過特別多的代碼,這次在閱讀論文的時候跑別人的代碼的時候出現(xiàn)了很多import的問題,這里我想跟大家分享一下,我在Ubuntu系統(tǒng),使用的是anaconda3,版本為3.6,我一般會在pycharm上跑代碼,但是有時候pycharm上跑通的代碼,在命令行下總出現(xiàn)import的問題,所以這里來總結(jié)一下,我就舉個簡單的例子吧!

一、同一目錄下的import

下面是我的文檔的結(jié)構(gòu):你可以看到在工程tfexe下,存在兩個文件夾一個是datasets,一個是parallel,dataset下還有一個in文件夾和一個out.py文件,in文件夾里面存在b.py和bb.py兩個文件。parallel文件夾下存在的是兩個文件a.py和aa.py。(推薦您先建立好這個結(jié)構(gòu))

a.py文件代碼:

def say_hello():
  print("hello world!")

aa.py文件代碼:你可以看到是調(diào)用a.py里面的函數(shù)say_hello(),但是在pycharm這里是報錯的,但是可運行,你可以設(shè)置將文件夾設(shè)置成source root就可以讓他不顯示錯誤了,但是無所謂啦!

import os
import sys
print("當前的工作目錄:",os.getcwd())
print("python搜索模塊的路徑集合:",sys.path)
from a import say_hello
say_hello()

其他暫且無用,這里先不展示!

(1)pycharm運行結(jié)果

右擊aa.py,來運行,你會觀察到下面的結(jié)果:很顯然,我們的a.py成功的調(diào)用了aa.py文件的函數(shù)say_hello()。

你可以看到當前的工作目錄是什么,那就是aa.py文件所在的絕對地址。

關(guān)注重點,你可以看到Python搜索模塊的路徑集合,重點是前兩個,你看到在pycharm上直接run運行的,我們的搜索路徑有總的工程的絕對路徑還有運行的文件所在的路徑。

(2)命令行運行結(jié)果

需要你切換到parallel的文件夾下,然后運行aa.py,觀察可得這個結(jié)果也是正確的。

你看出與上面的區(qū)別了嗎?很顯然,當前的工作路徑全部都是一樣的,但是我們的Python的搜索模塊的路徑少了什么呀?觀察第二個,你會發(fā)現(xiàn),哇哦,少了我的整個工程所在的絕對路徑。因為這里parallel的絕對路徑是存在的,所以在搜索a模塊的時候,發(fā)現(xiàn)是可以搜索到的,因為a就在parallel這個絕對路徑的下面,當然是可以搜索到的,但是如果你需要調(diào)用別的文件夾的東西呢?很顯然,這里就要出錯啦~詳見下一節(jié)

總結(jié):import同一文件夾下的模塊是可以在pycharm還有命令行下都是可以運行的!

二、不同的目錄下的import

b.py文件的內(nèi)容:

def say_goodbye():
  print("goodbye!")

bb.py文件的內(nèi)容:

import os
import sys
print("當前的工作目錄:",os.getcwd())
print("python搜索模塊的路徑集合",sys.path)
#引入同一文件夾下的模塊
from b import say_goodbye
say_goodbye()

# #引入與本文件夾同級的文件夾
# from in2 import c
# c.say()

#引入與本文件夾的上級文件夾同一級的文件夾下的模塊
from parallel import a
a.say_hello()

c.py的文件內(nèi)容:

def say():
  print("say yes")

(1)pycharm運行結(jié)果

你會發(fā)現(xiàn),在pycharm上import不同文件夾下的模塊居然成功了,這是為什么呢?你看Python的搜索模塊的路徑出來的結(jié)果,里面包含了,我這個總的工程tfexe的絕對路徑,所以在引入parallel的時候自然是成功的,因為parallel在我們的搜索路徑上。所以我推測啊,pycharm自動的將整個工程的絕對路徑加入sys.path,也就是Python的模塊搜索路徑!

但是你肯定看到了我注釋掉了那個進入in2模塊的,為什么注釋掉,因為跑不通啊,為什么跑不通呢?因為in2模塊,沒有搜到,很尷尬呀~那沒搜到肯定是因為我的Python的搜索路徑不包含這里,仔細觀察結(jié)果,你發(fā)現(xiàn)只有tfexe的絕對路徑和in的絕對路徑,in2確實不在,怎么處理,把它加上絕對路徑不就好了!

加上能夠搜索到in2的絕對路徑:那不就是datasets的絕對路徑嘛!

在上面的bb.py里面添加上代碼

#-----這里是加上in2的絕對路徑的操作代碼------
sys.path.append("/home/syq/PycharmProjects/tfexe/datasets")

從運行結(jié)果來看,你會發(fā)現(xiàn)居然都成功了,這都歸功于sys.path!

(2)命令行運行結(jié)果

很顯然啊,這里報錯了,為什么呢?他說模塊parallel不存在,為什么明明之前的在pycharm上可以運行在這里不行了呢?

我們在命令行運行注釋掉in2的那個部分的代碼,也就是(1)里面的未更改之前的bb.py的代碼:為了防止大家搞混,我在這里在貼一下bb.py的代碼:

import os
import sys
print("當前的工作目錄:",os.getcwd())
print("python搜索模塊的路徑集合",sys.path)
#引入同一文件夾下的模塊
from b import say_goodbye
say_goodbye()

# #引入與本文件夾同級的文件夾
# from in2 import c
# c.say()

#引入與本文件夾的上級文件夾同一級的文件夾下的模塊
from parallel import a
a.say_hello()

結(jié)果:觀察到報錯了,報錯parallel這個模塊居然不存在,很顯然觀察sys.path的輸出,你發(fā)現(xiàn)少了之前的tfexe的絕對路徑,這就是parallel找不到的原因,因為他壓根不在搜索路徑上,所以這里我在bb.py的代碼基礎(chǔ)上添加上能夠搜到parallel的搜索路徑。

修改后的bb.py的代碼:

import os
import sys
print("當前的工作目錄:",os.getcwd())
sys.path.append("/home/syq/PycharmProjects/tfexe")
print("python搜索模塊的路徑集合",sys.path)

#引入同一文件夾下的模塊
from b import say_goodbye
say_goodbye()

# #引入與本文件夾同級的文件夾
# from in2 import c
# c.say()

#引入與本文件夾的上級文件夾同一級的文件夾下的模塊
from parallel import a
a.say_hello()

代碼運行結(jié)果:注意我把未改之前的bb.py的運行結(jié)果也放在了這里,你可以觀察到兩者的差別所在,你就會發(fā)現(xiàn),哦原來啊,下面的sys.path比更改之前的path多了一個可以搜索到parallel的絕對路徑了,很顯然就能成功的運行了!

現(xiàn)在你差不多懂了吧,當你遇到了import的錯誤,你只需要輸出sys.path來看看能不能搜索到你要加入的模塊,如果不行就自己手動的添加!

在引入in2模塊試試看!

bb.py文件的內(nèi)容:

import os
import sys
print("當前的工作目錄:",os.getcwd())
sys.path.append("/home/syq/PycharmProjects/tfexe")
sys.path.append("/home/syq/PycharmProjects/tfexe/datasets")
print("python搜索模塊的路徑集合",sys.path)

#引入同一文件夾下的模塊
from b import say_goodbye
say_goodbye()

#引入與本文件夾同級的文件夾
from in2 import c
c.say()

#引入與本文件夾的上級文件夾同一級的文件夾下的模塊
from parallel import a
a.say_hello()

不管是在命令行還是pycharm都是可以得到結(jié)果的!

到此這篇關(guān)于關(guān)于Python3的import問題(pycharm可以運行命令行import錯誤)的文章就介紹到這了,更多相關(guān)Python3 import出錯內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python 實現(xiàn)圍棋游戲(純tkinter gui)

    python 實現(xiàn)圍棋游戲(純tkinter gui)

    這篇文章主要介紹了python 如何實現(xiàn)圍棋游戲,幫助大家利用tkinter制作圖形界面程序,感興趣的朋友可以了解下
    2020-11-11
  • python實現(xiàn)可下載音樂的音樂播放器

    python實現(xiàn)可下載音樂的音樂播放器

    這篇文章主要為大家詳細介紹了python實現(xiàn)可下載音樂的音樂播放器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • python 利用openpyxl讀取Excel表格中指定的行或列教程

    python 利用openpyxl讀取Excel表格中指定的行或列教程

    這篇文章主要介紹了python 利用openpyxl讀取Excel表格中指定的行或列教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • python“靜態(tài)”變量、實例變量與本地變量的聲明示例

    python“靜態(tài)”變量、實例變量與本地變量的聲明示例

    這篇文章主要給大家介紹了關(guān)于python“靜態(tài)”變量、實例變量與本地變量的聲明的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • 如何在Python函數(shù)執(zhí)行前后增加額外的行為

    如何在Python函數(shù)執(zhí)行前后增加額外的行為

    有的時候會需要在函數(shù)前后添點額外的功能(比如過濾、計時等)時,以前總是首先想到裝飾器。最近學習了Python的上下文管理器,所以本文就給大家介紹了如何在Python函數(shù)執(zhí)行前后增加額外的行為,有需要的朋友們可以參考借鑒,下面來一起看看吧。
    2016-10-10
  • Python 數(shù)值區(qū)間處理_對interval 庫的快速入門詳解

    Python 數(shù)值區(qū)間處理_對interval 庫的快速入門詳解

    今天小編就為大家分享一篇Python 數(shù)值區(qū)間處理_對interval 庫的快速入門詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • Python第三方庫h5py_讀取mat文件并顯示值的方法

    Python第三方庫h5py_讀取mat文件并顯示值的方法

    今天小編就為大家分享一篇Python第三方庫h5py_讀取mat文件并顯示值的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • 詳解Python開發(fā)中如何使用Hook技巧

    詳解Python開發(fā)中如何使用Hook技巧

    這篇文章主要介紹了詳解Python開發(fā)中如何使用Hook技巧,詳細的介紹了Python Hook的用法和示例,有興趣的可以了解一下
    2017-11-11
  • python django生成遷移文件的實例

    python django生成遷移文件的實例

    今天小編就為大家分享一篇python django生成遷移文件的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • 利用python繪制帶有時間線的柱狀圖

    利用python繪制帶有時間線的柱狀圖

    這篇文章主要為大家詳細介紹了如何使用python繪制出帶有時間線的柱狀圖,文中的示例代碼講解的非常詳細,具有一定的學習與借鑒價值,需要的可以參考一下
    2023-07-07

最新評論

彰武县| 昭平县| 夏邑县| 城口县| 蒙山县| 读书| 柳州市| 拜泉县| 内江市| 梁平县| 阿图什市| 平定县| 惠来县| 馆陶县| 宣威市| 鄢陵县| 白银市| 鲁甸县| 奉贤区| 唐河县| 利津县| 常德市| 平远县| 璧山县| 蕉岭县| 宣汉县| 隆安县| 孙吴县| 东山县| 泰安市| 威信县| 娄底市| 清远市| 塔河县| 阜康市| 中江县| 伊宁县| 汉寿县| 浦江县| 安塞县| 泸州市|