vs找不到dll_零基础学习Python_绝对VS相对
Python學(xué)習(xí)筆記
公眾號(hào)搜索--樹莓派OpenCV學(xué)舍
絕對(duì)路徑VS 相對(duì)路徑
今天筆者在研究某個(gè)品牌工業(yè)相機(jī)的SDK,在嘗試著運(yùn)行一段代碼時(shí),系統(tǒng)突然顯示報(bào)錯(cuò)了。具體看下圖:
明明是一段示例程序,怎么會(huì)報(bào)錯(cuò)呢?仔細(xì)看上圖的提示信息,是因?yàn)槌绦蛑姓也坏組vCameraControl.dll(或者相關(guān)依賴)。于是我打開(kāi)SDK? Runtime,發(fā)現(xiàn)是有這個(gè)動(dòng)態(tài)鏈接庫(kù)滴。
既然手動(dòng)找得到這個(gè)文件,那就說(shuō)明只是程序找不到罷了,問(wèn)題不大。繼續(xù)找到程序中提示錯(cuò)誤的代碼段,見(jiàn)下圖:
從上圖中可以看出,此文件是沒(méi)有列出絕對(duì)路徑的。如果這個(gè)動(dòng)態(tài)鏈接庫(kù)在程序所處的文件夾中,系統(tǒng)是不會(huì)報(bào)錯(cuò)的;可是從前一張截圖可以看出,并非如此。所以此處,我們需要給出完整的路徑才可。代碼修改如下,問(wèn)題解決。
Python里的路徑分相對(duì)路徑和絕對(duì)路徑。
絕對(duì)路徑
絕對(duì)路徑好理解,我們以Cat.py來(lái)舉例子。
這就是它的絕對(duì)路徑:"E:/Python/Lib/site_packages/Cat.py"
相對(duì)路徑
相對(duì)路徑呢,就是相對(duì)于Cat.py的路徑。下面來(lái)看幾個(gè)例子:
"Dog1.py",對(duì)應(yīng): "E:/Python/Lib/site_packages/Dog1.py"
跟Cat.py在同一個(gè)文件夾里。
"set/Dog2.py",對(duì)應(yīng): "E:/Python/Lib/site_packages/set/Dog2.py"
跟Cat.py在同一個(gè)文件夾里的set文件夾里的文件。
"./Dog3.py",對(duì)應(yīng):"E:/Python/Lib/site_packages/Dog3.py"
跟Cat.py在同一個(gè)文件夾里。
"../Dog4.py",對(duì)應(yīng): "E:/Python/Lib/Dog4.py"Cat.py上一級(jí)文件夾里的文件。
也就是說(shuō)除了第四個(gè)是上一級(jí)文件夾,前三個(gè)都是當(dāng)前文件夾。
通過(guò)總結(jié)可以發(fā)現(xiàn),當(dāng)你要導(dǎo)入的文件在和你的當(dāng)前文件在同一個(gè)目錄時(shí),你直接導(dǎo)入這個(gè)文件名就好了。
? 當(dāng)你要導(dǎo)入的文件或者目錄不和你的當(dāng)前文件同目錄時(shí),你需要跳到這個(gè)你要導(dǎo)入文件的父級(jí)目錄,然后一級(jí)一級(jí)的用點(diǎn)號(hào)連接走過(guò)的目錄或者文件,然后就可以了。至于要怎么跳到這個(gè)這個(gè)父級(jí)目錄。比較通用的就是,將父級(jí)目錄加入系統(tǒng)路徑,然后用點(diǎn)號(hào)一級(jí)一級(jí)的尋找,直到到達(dá)你要導(dǎo)入的模塊。
例如:有一個(gè)文件夾/home/a, 里面有個(gè)模塊叫b.py, 我怎么把他import到程序里?
import sys;
sys.path.append(“/home/a/”)
import b
接下來(lái)說(shuō)一說(shuō)from __future__ import absolute_import
這句代碼的作用是加入 絕對(duì)引用這個(gè)特性。
假設(shè)你的工程目錄為:
.
|-- __init__.py
|-- main.py
|-- xxx.py
|-- config
在工程文件目錄 的main.py 中寫 import xxx 會(huì)引用當(dāng)前的文件中的 xxx.py,但是你想忽略當(dāng)前文件夾的 xxx.py 而引用系統(tǒng)中的 xxx.py,就需要在前面加 from __future__ import absolute_import,這時(shí)候引用工程文件的 xxx.py 就需要 from pro import xxx
當(dāng)然,最好就不要有相同名字的文件存在
總結(jié)
以上是生活随笔為你收集整理的vs找不到dll_零基础学习Python_绝对VS相对的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python释放变量内存_Python尚
- 下一篇: python template用法_py