python 指定源路徑來(lái)解決import問(wèn)題的操作
用python做大型工程時(shí),經(jīng)常會(huì)出現(xiàn)import問(wèn)題。比如,當(dāng)你import另一個(gè)py文件時(shí),這個(gè)py不存在于你的運(yùn)行路徑下,便會(huì)報(bào)錯(cuò)。
大概有兩種方法:
如果在terminal里,咱們可以通過(guò)sys.path.append來(lái)添加運(yùn)行路徑;如果在pycharm環(huán)境里,咱們可以右鍵Mark Directory as Sources Root。
舉個(gè)栗子:vim head.py
def add(a, b): return a + b
vim run.py
import head a = 3 b = 4 c = head.add(a, b) print(c)
咱們把head.py和run.py放在一個(gè)路徑下,文件結(jié)構(gòu)如下:
my_path
├── head.py
└── run.py
咱們運(yùn)行run.py:
cd my_path python run.py
直接成功運(yùn)行沒(méi)有毛病。但是,如果路徑關(guān)系再?gòu)?fù)雜點(diǎn)呢?比如
my_path
├── folder_a
│ └── run.py
└── folder_b
└── head.py
如果cd my_path/folder_a,然后python run.py??隙〞?huì)報(bào)路徑錯(cuò)誤。這個(gè)時(shí)候,如果你是用pycharm開(kāi)發(fā)這個(gè)工程,你可以直接

倒數(shù)第三行,mark directory as source root。直接把folder_b設(shè)置為一個(gè)源根目錄,這樣folder_b下的文件都可以直接不加前綴地被import。
如果你是在terminal運(yùn)行,沒(méi)辦法像pycharm那么設(shè)計(jì),或者需要從pycharm部署到terminal時(shí),你可以用sys.path.append()來(lái)添加源路徑。
咱們只需要添加兩句:
import sys
sys.path.append('../folder_b')
import head
a = 3
b = 4
c = head.add(a, b)
print(c)
只需要開(kāi)頭加兩行就可以完成源路徑的指定,源路徑下的所有py都可以被不加前綴直接import。你學(xué)廢了嗎
補(bǔ)充:Python國(guó)內(nèi)鏡像源路徑和設(shè)置方法
最近學(xué)習(xí)Python需要安裝第三方的庫(kù),基本是國(guó)外網(wǎng)站,安裝緩慢,于是找到了解決方法,記錄下來(lái):使用Python國(guó)內(nèi)鏡像源路徑,可以快速安裝。
國(guó)內(nèi)源路徑匯總:
清華:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
中國(guó)科技大學(xué) https://pypi.mirrors.ustc.edu.cn/simple/
華中理工大學(xué):http://pypi.hustunique.com/
山東理工大學(xué):http://pypi.sdutlinux.org/
豆瓣:http://pypi.douban.com/simple/
使用案例:
例如:pip3 install -i https://pypi.doubanio.com/simple/ 包名
臨時(shí)使用方式:
可以在使用pip的時(shí)候加參數(shù)-i https://pypi.tuna.tsinghua.edu.cn/simple
例如:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyqt5,這樣就會(huì)從清華這邊的鏡像去安裝pyqt5庫(kù)。
永久修改使用方式:
Linux下,修改 ~/.pip/pip.conf (沒(méi)有就創(chuàng)建一個(gè)文件夾及文件。文件夾要加“.”,表示是隱藏文件夾)
內(nèi)容如下:
[global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple [install] trusted-host=mirrors.aliyun.com
windows下,直接在user目錄中創(chuàng)建一個(gè)pip目錄,再新建文件pip.ini。(例如:C:\Users\WQP\pip\pip.ini)內(nèi)容同上。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
分析Python的Django框架的運(yùn)行方式及處理流程
這篇文章主要介紹了分析Python的Django框架的運(yùn)行方式及處理流程,本文對(duì)于Django框架的機(jī)制總結(jié)得非常之直觀精煉,極力推薦!需要的朋友可以參考下2015-04-04
Python time模塊詳解(常用函數(shù)實(shí)例講解,非常好)
在平常的代碼中,我們常常需要與時(shí)間打交道。在Python中,與時(shí)間處理有關(guān)的模塊就包括:time,datetime以及calendar。這篇文章,主要講解time模塊。2014-04-04
對(duì)python創(chuàng)建及引用動(dòng)態(tài)變量名的示例講解
今天小編就為大家分享一篇對(duì)python創(chuàng)建及引用動(dòng)態(tài)變量名的示例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11
Django admin 實(shí)現(xiàn)search_fields精確查詢實(shí)例
這篇文章主要介紹了Django admin 實(shí)現(xiàn)search_fields精確查詢實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03
pytest allure添加環(huán)境信息實(shí)例講解
這篇文章主要介紹了pytest allure添加環(huán)境信息實(shí)例,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-12-12
Python中文分詞實(shí)現(xiàn)方法(安裝pymmseg)
這篇文章主要介紹了Python中文分詞實(shí)現(xiàn)方法,通過(guò)安裝pymmseg來(lái)實(shí)現(xiàn)分詞功能,涉及pymmseg的下載、解壓、安裝及使用技巧,需要的朋友可以參考下2016-06-06

