python import 路徑問題 新手

2021-07-08 21:58:23 字數 4198 閱讀 2282

1樓:豐豐的風箏

1.python import模組時, 是在sys.path裡按順序查詢的;

2.sys.path是一個列表,裡面以字串的形式儲存了許多路徑;

電腦程式常見問題解決方法:

網路設定的問題:這種原因比較多出現在需要手動指定ip、閘道器、dns伺服器聯網方式下,及使用**伺服器上網的。仔細檢查計算機的網路設定。

網路協議和網絡卡驅動的問題:ie無法瀏覽,有可能是網路協議(特別是tcp/ip協議)或網絡卡驅動損壞導致,可嘗試重新網絡卡驅動和網路協議。

2樓:盜墓者

兩個方法:

1.用系統模組sys下的path方法就行。

加入進去後,就可以正常import了

比如我把c盤根目錄加入進去:

這樣,我就可以直接import匯入c盤下的py檔案了2.設定環境變數。把你希望的路徑直接設定到環境變數裡,就可以正常import了

補充,用__init__.py是讓這個資料夾成為一個包,還是沒有根本的解決問題

3樓:匿名使用者

以下為純手打,下面給幾個demos:

說明:modules所在的目錄在python裡叫package, 下面是一個名為 isdir的package(實際上就是一個目錄), package下面有4個modules(a, b, c, d)和一個__init__.py檔案,目錄結構如下:

isdir/

a.py  b.py  c.py  d.py __init__.py

大體來講,有兩種方法可以呼叫某目錄下(包括遞迴目錄)的modules.

一.  __init__.py為空時

1.1 以下為呼叫modulea的**:

#!/usr/bin/env python

from isdir import a

a.say()

輸出:this is module a!

1.2 如果想呼叫modulea,b,c,d呢?

方法1.

#!/usr/bin/env python

from isdir import a

from isdir import b

from isdir import c

from isdir import d

a.say()

b.say()

c.say()

d.say()

方法2.

#!/usr/bin/env python

import isdir.a

import isdir.b

import isdir.c

import isdir.d

from isdir import *

a.say()

b.say()

c.say()

d.say()

錯誤示例1:

#!/usr/bin/env python

import isdir.a

a.say()

錯誤示例2:

#!/usr/bin/env python

from isdir import *

a.say()

錯誤的原因:

isdir/目錄下__init__.py 為空時,直接import isdir.a 或者from isdir import *是無效的.

從官方文件裡可以看到,__init__.py 裡沒有__all__ = [module1,module2,...]時,

from isdir import * 只能保證isdir被imported,  所以此時isdir裡的modules是無法被imported,

此時只有如我上面所寫的**所示才能正確執行,否則是錯誤的。官方解釋為:import isdir.

a並無任何意義,只有接著執行from isdir import *後,import isdir.a語句裡的module a才會被定義,所以完整的呼叫因改為: 1.

  import isdir.a   2. from isdir import *。

二.   __init__.py用all=[...]指定該package下可以被imported進去的module

__init__.py裡寫入如下內容:

% cat isdir/__init__.py

__all__ = ["a","b"]

然後使用之:

#!/usr/bin/env python

from isdir import *

a.say()

b.say()

結果:% python test.py

this is module a!

this is module b!

錯誤例項:

#!/usr/bin/env python

from isdir import *

c.say()

以上示例之所以錯誤,是因為c並沒有在__all__ = ["a","b"]裡制定,由此可見,package isdir下面的__init__.py裡,__all__=[...]具有隔離modules的作用。

補充:module a, b, c,d裡我分別只定義了一個method, 例如,以下為module a的code:

% cat isdir/a.py

def say():

print "this is module a!"

後記:謝謝這位同學,回答你的問題感覺很有收穫,順便又把python溫習了一遍。回頭把這些總結貼到我的blog上以上為手寫,望採納,共勉。

老子寫了這麼多居然採用了另一個簡陋的答案,mlgb的,枉我熬夜給你答題。這種白痴樓主就不配在這裡問問題。

4樓:匿名使用者

放在當前資料夾的子資料夾裡, 才好引用.

放在父資料夾的其他子檔案裡的.py要動態新增module的import路徑, 比較麻煩, 很少用.

你把test_case資料夾把到01***那個資料夾裡, 就很容易import了

python 相對路徑問題,新手。謝謝。

5樓:常山英豪

使用os模組來獲取當前檔案的絕對路徑和拼接路徑。

import os

base_dir = os.path.dirname(__file__) #獲取當前資料夾的絕對路徑

print base_dir

file_path = os.path.join(base_dir, 'test_data') #獲取當前資料夾內的test_data檔案

test_data = open(file_path, "r") #讀取檔案

for line in test_data:

print line

test_data.close() #關閉檔案

6樓:匿名使用者

我覺得你問的沒那麼難,

一個辦法是

apath = os.path.abspath('.') \忘記了,求絕對路徑的,

strpath = os.seq.join([apath,'04-test_data'])

l = os.listdir(strpath)

7樓:牛乃茴

加上r即可,即l = os.listdir(r'c:\my_script\\04-test_data'),r即raw data,原始資料的意思,那麼就不用轉義了。

python遇到問題 想import一個不在當前路徑下的.py程式

8樓:

所以,你只需要在你import語句前面,把login資料夾加到sys.path即可

9樓:匿名使用者

可以把login資料夾當成包來處理,在其中新建__init__.py即可,然後import login.login_main.py

10樓:

首先在你要import的程式所在的目錄建立一個空檔案,檔名必須為__init__.py

然後 from 目錄 import 程式 即可

python 使用 from import 匯入類,無法找到模組問題?

11樓:

把a檔案加上字尾名,變成"a.py"

12樓:杯具——悲劇

你聽說過副檔名嗎?

電路路徑問題,電路路徑是什麼

因為電流遇到導線就直接通過,不經過電阻 所以r1被短路 r2和r3並聯 電路路徑是什麼 電路是電流經過的路徑 它是一個閉環迴路,一般只要有迴路就可以導通。假如說中間電阻特別大,也可能不導通 在一個電路圖中怎樣看電流流經的路徑 電是從電源的正極出發,迴流到負極的,中間的流通原則是,找最近的,和損耗最少...

AI裡新增節點路徑不能和原路徑在同路徑上

樓主你好來!在ai中,如果不是閉合源路徑的話,還是可以直接使用鋼筆等進行從新畫圖,這是與原圖連線的 如果是閉合路徑,是沒法新增進去新的路徑,因此軟體沒有像cad一樣有打散的功能,軟體限制吧!建議重新畫好自己需要的,之後考慮上下重疊,再進行合併吧!用 號新增節點!也可以直接用鋼筆工具 p 當移到路徑上...

相對路徑與絕對路徑的區別,相對路徑絕對路徑

絕對路徑指的是針對電腦系統所在的準確位置,比如test在d盤下,而best在test 下,對它的描述 相對路徑是這樣的,best在test目錄下,絕對路徑是best在d盤test資料夾內。說白了,相對路徑一般指檔案或資料夾所在的位置相對於上一級目錄的位置。絕對路徑指檔案或者資料夾相對於電腦系統所在的...