av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

Python -m參數(shù)原理及使用方法解析

瀏覽:7日期:2022-07-13 13:42:54

python -m xxx.py

作用是:把xxx.py文件當(dāng)做模塊啟動(dòng)

但是我一直不明白當(dāng)做模塊啟動(dòng)到底有什么用。python xxx.py和python -m xxx.py有什么區(qū)別!

自問自答:

python xxx.pypython -m xxx.py

這是兩種加載py文件的方式:

1叫做直接運(yùn)行

2把模塊當(dāng)作腳本來啟動(dòng)(注意:但是__name__的值為’main’ )

不同的加載py文件的方式,主要是影響——sys.path 這個(gè)屬性。sys.path 就相當(dāng)于liunx中的PATH。下面來看一下sys.path

>>> import sys>>> sys.path[’’, ’/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python27.zip’, ...]

上面的內(nèi)容我只截取了一段。此為當(dāng)前python解釋器運(yùn)行的環(huán)境,python解釋器會(huì)在這些目錄下去尋找依賴的庫!注解一點(diǎn):‘’——為當(dāng)前目錄

下面有兩個(gè)例子,通過不同方式啟動(dòng)同一文件,sys.path屬性的值有何不同。

# run.py 內(nèi)容如下import sysprint(sys.path)# 直接啟動(dòng):python run.pytest_import_project git:(master) ✗ python run.py[’/Users/sx/Documents/note/test_py/test_import_project’, ’/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python27.zip’, ...]# 以模塊方式啟動(dòng):python -m run.pytest_import_project git:(master) ✗ python -m run.py[’’, ’/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python27.zip’,

*** 細(xì)心的同學(xué)會(huì)發(fā)現(xiàn),區(qū)別就是在第一行。

直接啟動(dòng)是把run.py文件,所在的目錄放到了sys.path屬性中。

模塊啟動(dòng)是把你輸入命令的目錄(也就是當(dāng)前路徑),放到了sys.path屬性中***

在工作場景中有什么用呢?

# 目錄結(jié)構(gòu)如下package/__init__.pymod1.pypackage2/__init__.pyrun.py

# run.py 內(nèi)容如下import sysfrom package import mod1print(sys.path)

如何才能啟動(dòng)run.py文件?

# 直接啟動(dòng)(失敗)➜ test_import_project git:(master) ✗ python package2/run.pyTraceback (most recent call last): File 'package2/run.py', line 2, in <module> from package import mod1ImportError: No module named package# 以模塊方式啟動(dòng)(成功)➜ test_import_project git:(master) ✗ python -m package2.run[’’,’/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python27.zip’,...]

當(dāng)需要啟動(dòng)的py文件引用了一個(gè)模塊。你需要注意:在啟動(dòng)的時(shí)候需要考慮sys.path中有沒有你import的模塊的路徑!這個(gè)時(shí)候,到底是使用直接啟動(dòng),還是以模塊的啟動(dòng)?目的就是把import的那個(gè)模塊的路徑放到sys.path中。你是不是明白了呢?

官方文檔參考: http://www.pythondoc.com/pythontutorial3/modules.html

導(dǎo)入一個(gè)叫 mod1 的模塊時(shí),解釋器先在當(dāng)前目錄中搜索名為 mod1.py 的文件。如果沒有找到的話,接著會(huì)到 sys.path 變量中給出的目錄列表中查找。 sys.path 變量的初始值來自如下:

輸入腳本的目錄(當(dāng)前目錄)。 環(huán)境變量 PYTHONPATH 表示的目錄列表中搜索(這和 shell 變量 PATH 具有一樣的語法,即一系列目錄名的列表)。 Python 默認(rèn)安裝路徑中搜索。 實(shí)際上,解釋器由 sys.path 變量指定的路徑目錄搜索模塊,該變量初始化時(shí)默認(rèn)包含了輸入腳本(或者當(dāng)前目錄), PYTHONPATH 和安裝目錄。這樣就允許 Python程序了解如何修改或替換模塊搜索目錄。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 久久com| 91免费在线看 | 亚洲视频欧美视频 | 久久久久久久久久性 | 天天操一操 | 超碰男人天堂 | 久久亚洲欧美日韩精品专区 | 日韩欧美大片 | 东方伊人免费在线观看 | 99精品国自产在线 | 欧洲尺码日本国产精品 | 国产精品一区二区av | 欧美日韩国产在线观看 | 亚洲综合久久精品 | 激情 一区 | 九九在线精品视频 | 日本精品一区二区三区在线观看视频 | 国产成人精品a视频 | 国产在线一区二 | 欧美一级免费看 | 99国产精品久久久久 | 中文字幕亚洲视频 | 亚洲精品国产综合区久久久久久久 | 亚洲精品久久久久国产 | 精品电影| 久久国产成人 | 久久福利电影 | 国产91在线 | 中日 | 在线观看午夜视频 | 国产精品中文在线 | 国产激情在线 | 国产一区不卡 | 国产女人与拘做受视频 | 91精品国产91久久综合桃花 | 久久久激情视频 | 99精品国自产在线观看 | 久草网址 | 综合久久一区 | 伊人免费在线观看高清 | 91视频大全 | 天堂一区二区三区 |