python 指定源路徑來解決import問題的操作
用python做大型工程時,經(jīng)常會出現(xiàn)import問題。比如,當(dāng)你import另一個py文件時,這個py不存在于你的運行路徑下,便會報錯。
大概有兩種方法:
如果在terminal里,咱們可以通過sys.path.append來添加運行路徑;如果在pycharm環(huán)境里,咱們可以右鍵Mark Directory as Sources Root。
舉個栗子: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放在一個路徑下,文件結(jié)構(gòu)如下:
my_path
├── head.py
└── run.py
咱們運行run.py:
cd my_path python run.py
直接成功運行沒有毛病。但是,如果路徑關(guān)系再復(fù)雜點呢?比如
my_path
├── folder_a
│ └── run.py
└── folder_b
└── head.py
如果cd my_path/folder_a,然后python run.py??隙〞舐窂藉e誤。這個時候,如果你是用pycharm開發(fā)這個工程,你可以直接
倒數(shù)第三行,mark directory as source root。直接把folder_b設(shè)置為一個源根目錄,這樣folder_b下的文件都可以直接不加前綴地被import。
如果你是在terminal運行,沒辦法像pycharm那么設(shè)計,或者需要從pycharm部署到terminal時,你可以用sys.path.append()來添加源路徑。
咱們只需要添加兩句:
import sys sys.path.append('../folder_b') import head a = 3 b = 4 c = head.add(a, b) print(c)
只需要開頭加兩行就可以完成源路徑的指定,源路徑下的所有py都可以被不加前綴直接import。你學(xué)廢了嗎
補充:Python國內(nèi)鏡像源路徑和設(shè)置方法
最近學(xué)習(xí)Python需要安裝第三方的庫,基本是國外網(wǎng)站,安裝緩慢,于是找到了解決方法,記錄下來:使用Python國內(nèi)鏡像源路徑,可以快速安裝。
國內(nèi)源路徑匯總:
清華:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
中國科技大學(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/ 包名
臨時使用方式:
可以在使用pip的時候加參數(shù)-i https://pypi.tuna.tsinghua.edu.cn/simple
例如:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyqt5,這樣就會從清華這邊的鏡像去安裝pyqt5庫。
永久修改使用方式:
Linux下,修改 ~/.pip/pip.conf (沒有就創(chuàng)建一個文件夾及文件。文件夾要加“.”,表示是隱藏文件夾)
內(nèi)容如下:
[global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple [install] trusted-host=mirrors.aliyun.com
windows下,直接在user目錄中創(chuàng)建一個pip目錄,再新建文件pip.ini。(例如:C:\Users\WQP\pip\pip.ini)內(nèi)容同上。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
用ldap作為django后端用戶登錄驗證的實現(xiàn)
這篇文章主要介紹了用ldap作為django后端用戶登錄驗證的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12詳解pandas如何去掉、過濾數(shù)據(jù)集中的某些值或者某些行?
這篇文章主要介紹了pandas如何去掉、過濾數(shù)據(jù)集中的某些值或者某些行?,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05Python中sklearn實現(xiàn)交叉驗證示例分析
這篇文章主要介紹了Python中sklearn實現(xiàn)交叉驗證,本文python的版本為3.8,各個版本之間函數(shù)名字略有不同,但是原理都是一樣的,集成開發(fā)環(huán)境使用的是Anaconda的Spyder,需要的朋友可以參考下2023-08-08python刪除文件夾中具有相同后綴類型文件的實戰(zhàn)演練
在平時卸載軟件的時候會殘留許多文件和空文件夾,下面這篇文章主要給大家介紹了關(guān)于python刪除文件夾中具有相同后綴類型文件的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-03-03