python -m 和 python 直接運行的區別


一分鍾版本

>>> python xxx.py  # 直接運行
>>> python -m xxx # 相當於import,叫做當做模塊來啟動

主要區別在於sys.path不同

直接運行會將該腳本所在目錄添加至sys.path
當做模塊啟動則會將當前運行命令的路徑添加至sys.path

實際應用

假設我們有如下文件結構

package1/
    |--__init__.py
    |--mod1.py
package2/
    |--__init__.py
    |--run.py

run.py中import了mod1.py

# run.py
from package1 import mod1

>>> python run.py # 失敗,提示找不到package1

# 切換到package2 所在目錄
>>> python -m package2.run # 成功
參考

[python]自問自答:python -m參數?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM