欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python如何修改PYTHONPATH環(huán)境變量

 更新時(shí)間:2023年08月02日 11:27:30   作者:harry_tea  
這篇文章主要介紹了python如何修改PYTHONPATH環(huán)境變量問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

查看當(dāng)前python環(huán)境

我們進(jìn)入到conda中的mmlab環(huán)境中,運(yùn)行下面命令

(mmlab) wangyh@Ti-Sev:~$ python -m site
sys.path = [
    '/home/wangyh',
    '/home/wangyh/anaconda3/envs/mmlab/lib/python310.zip',
    '/home/wangyh/anaconda3/envs/mmlab/lib/python3.10',
    '/home/wangyh/anaconda3/envs/mmlab/lib/python3.10/lib-dynload',
    '/home/wangyh/anaconda3/envs/mmlab/lib/python3.10/site-packages',
]
USER_BASE: '/home/wangyh/.local' (exists)
USER_SITE: '/home/wangyh/.local/lib/python3.10/site-packages' (doesn't exist)
ENABLE_USER_SITE: True

可以看到當(dāng)前python環(huán)境和相關(guān)包的信息,也就是sys.path中的內(nèi)容,有運(yùn)行命令的當(dāng)前目錄/home/wangyh,還有我當(dāng)前環(huán)境mmlab的安裝目錄xxx/envs/mmlab/lib/xxx,也就是說默認(rèn)的python在導(dǎo)入module的時(shí)候,默認(rèn)從當(dāng)前目錄下以及當(dāng)前環(huán)境目錄下來搜索

為什么要添加python環(huán)境?

假設(shè)我們當(dāng)前的程序目錄如下所示

- data
	- hello
		- hello.py
- data2
	- test.py

我們進(jìn)入到data2文件夾下要運(yùn)行test.py文件,用的環(huán)境還是上面的mmlab,那么此時(shí)我們的環(huán)境變量

如下所示

'/data2'
'/home/wangyh/anaconda3/envs/mmlab/lib/python310.zip'
'/home/wangyh/anaconda3/envs/mmlab/lib/python3.10'
'/home/wangyh/anaconda3/envs/mmlab/lib/python3.10/lib-dynload'
'/home/wangyh/anaconda3/envs/mmlab/lib/python3.10/site-packages'

第一個(gè)環(huán)境變?yōu)榱?code>/data2是因?yàn)?code>test.py在data2目錄下,因?yàn)榄h(huán)境還是mmlab所以剩下的python環(huán)境不變,

現(xiàn)在hello.py中有一個(gè)greet函數(shù),我們想在test.py中引入此函數(shù),即from hello import greet,

但是此時(shí)會報(bào)錯(cuò),

No module named xxx

這是因?yàn)榫幾g器會自動在上述環(huán)境變量中去尋找hello,但是環(huán)境變量中沒有hello文件夾,此時(shí)就需要在python環(huán)境變量中添加/data/hello路徑了

添加python環(huán)境

1.臨時(shí)添加

程序中加入sys庫

>>> import sys
>>> sys.path
['', 
'/home/wangyh/anaconda3/envs/mmlab/lib/python310.zip', 
'/home/wangyh/anaconda3/envs/mmlab/lib/python3.10', 
'/home/wangyh/anaconda3/envs/mmlab/lib/python3.10/lib-dynload', 
'/home/wangyh/anaconda3/envs/mmlab/lib/python3.10/site-packages']
>>> sys.path.append('/data/hello')
>>> sys.path
['', 
'/home/wangyh/anaconda3/envs/mmlab/lib/python310.zip', 
'/home/wangyh/anaconda3/envs/mmlab/lib/python3.10', 
'/home/wangyh/anaconda3/envs/mmlab/lib/python3.10/lib-dynload',
'/home/wangyh/anaconda3/envs/mmlab/lib/python3.10/site-packages', 
'/data/hello']

可以看到此時(shí)/data/hello就添加到python環(huán)境變量中去了,一旦腳本運(yùn)行完畢,此環(huán)境變量就失效了,如果要再次使用需要再次運(yùn)行

2.export命令

在終端中添加環(huán)境變量

export PYTHONPATH=/data/hello:$PYTHONPATH

或者

export PYTHONPATH=$PYTHONPATH:/data/hello
(mmlab) wangyh@Ti-Sev:~$ python -m site
sys.path = [
    '/home/wangyh',
    '/home/wangyh/anaconda3/envs/mmlab/lib/python310.zip',
    '/home/wangyh/anaconda3/envs/mmlab/lib/python3.10',
    '/home/wangyh/anaconda3/envs/mmlab/lib/python3.10/lib-dynload',
    '/home/wangyh/anaconda3/envs/mmlab/lib/python3.10/site-packages',
]
USER_BASE: '/home/wangyh/.local' (exists)
USER_SITE: '/home/wangyh/.local/lib/python3.10/site-packages' (doesn't exist)
ENABLE_USER_SITE: True
(mmlab) wangyh@Ti-Sev:~$ export PYTHONPATH=/data/hello:$PYTHONPATH
(mmlab) wangyh@Ti-Sev:~$ python -m site
sys.path = [
    '/home/wangyh',
    '/data/hello',
    '/home/wangyh/anaconda3/envs/mmlab/lib/python310.zip',
    '/home/wangyh/anaconda3/envs/mmlab/lib/python3.10',
    '/home/wangyh/anaconda3/envs/mmlab/lib/python3.10/lib-dynload',
    '/home/wangyh/anaconda3/envs/mmlab/lib/python3.10/site-packages',
]
USER_BASE: '/home/wangyh/.local' (exists)
USER_SITE: '/home/wangyh/.local/lib/python3.10/site-packages' (doesn't exist)
ENABLE_USER_SITE: True

可以看到添加python環(huán)境變量之后多了/data/hello,但是只對于當(dāng)前終端生效,一旦終端關(guān)閉立刻失效,如果要重新添加需要重新export

永久生效

1.修改.bashrc文件

# 修改用戶主目錄下的.bashrc文件
vim ~/.bashrc
# 添加之前的環(huán)境變量
export PYTHONPATH=/data/hello:$PYTHONPATH
# 保存退出,更新環(huán)境變量使其生效
source ~/.bashrc

此方法只適用于當(dāng)前用戶,不適用于所有用戶,比如別人登錄他們的賬號,他的環(huán)境變量不受影響

2.修改pth文件

還有一種方法是修改當(dāng)前環(huán)境下的一個(gè)xx/anaconda3/envs/xxx/lib/python3.x/site-packages/xxx.pth文件,這個(gè)我沒試過就不寫了,主要是懶

注意?。。。?!

根據(jù)我的經(jīng)驗(yàn),不知道是設(shè)置問題還是操作問題,如果你的python環(huán)境變量不是當(dāng)前conda環(huán)境的路徑,比如本來應(yīng)該是xxx/envs/mmlab/xxx,但是變成了xxx/anaconda3/lib/python3.x/xxx這種路徑,那么多半是終端開的比較多啥的。。。

或者開了好多窗口export亂了,終端都關(guān)了重新打開就好了,當(dāng)時(shí)的我反正一臉疑惑。。。

這還會帶來一個(gè)問題,就是如果你在當(dāng)前環(huán)境安裝包的話,他會安裝到別的地方,所以就直接把終端都關(guān)了重新打開來解決問題就行。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python函數(shù)嵌套實(shí)例

    Python函數(shù)嵌套實(shí)例

    這篇文章主要介紹了Python函數(shù)嵌套實(shí)例,本文用實(shí)例講解了Python中的函數(shù)嵌套特性,需要的朋友可以參考下
    2014-09-09
  • Django添加feeds功能的示例

    Django添加feeds功能的示例

    這篇文章主要介紹了Django添加feeds功能的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-08-08
  • Pycharm激活碼激活兩種快速方式(附最新激活碼和插件)

    Pycharm激活碼激活兩種快速方式(附最新激活碼和插件)

    這篇文章主要介紹了Pycharm兩種快速激活方式(附最新激活碼和插件) ,本文給大家分享兩種方式,小編在文章給大家推薦方法二,大家可以根據(jù)自己需要選擇,感興趣的朋友跟隨小編一起看看吧
    2020-03-03
  • OPCUA-Python實(shí)例

    OPCUA-Python實(shí)例

    這篇文章主要介紹了OPCUA-Python實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • python內(nèi)置函數(shù)breakpoint()與bytearray()示例詳解

    python內(nèi)置函數(shù)breakpoint()與bytearray()示例詳解

    本文給大家分享的是python內(nèi)置函數(shù)breakpoint()與bytearray()的相關(guān)資料,并給大家附上了詳細(xì)代碼,有需要的小伙伴可以參考下
    2017-04-04
  • 對python多線程中Lock()與RLock()鎖詳解

    對python多線程中Lock()與RLock()鎖詳解

    今天小編就為大家分享一篇對python多線程中Lock()與RLock()鎖詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • OpenCV半小時(shí)掌握基本操作之圓圈檢測

    OpenCV半小時(shí)掌握基本操作之圓圈檢測

    這篇文章主要介紹了OpenCV基本操作之圓圈檢測,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • Python制作進(jìn)度條的四種方法總結(jié)

    Python制作進(jìn)度條的四種方法總結(jié)

    如果你之前沒用過進(jìn)度條,八成是覺得它會增加不必要的復(fù)雜性或者很難維護(hù),其實(shí)不然。要加一個(gè)進(jìn)度條其實(shí)只需要幾行代碼,快跟隨小編一起學(xué)習(xí)學(xué)習(xí)吧
    2022-11-11
  • Python pass詳細(xì)介紹及實(shí)例代碼

    Python pass詳細(xì)介紹及實(shí)例代碼

    這篇文章主要介紹了Python pass詳細(xì)介紹及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • Python實(shí)現(xiàn)K-近鄰算法的示例代碼

    Python實(shí)現(xiàn)K-近鄰算法的示例代碼

    k-近鄰算法(K-Nearest Neighbour algorithm),又稱 KNN 算法,是數(shù)據(jù)挖掘技術(shù)中原理最簡單的算法。本文將介紹實(shí)現(xiàn)K-近鄰算法的示例代碼,需要的可以參考一下
    2022-09-09

最新評論