亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在另一個文件夾中導入 Python 模塊,而無需相對導入和編輯 PYTHONPATH

如何在另一個文件夾中導入 Python 模塊,而無需相對導入和編輯 PYTHONPATH

Smart貓小萌 2023-04-18 15:44:05
這是我的文件夾結構:.├── main.py├── formats│   ├── __init__.py│   └── writer.py└── misc    ├── __init__.py    └── util.py在 中main.py,我可以util.py使用以下方式導入:from misc.util import sth但是,我無法使用上述語句和此命令導入util.pyin :writer.pypython formats/writer.py現在最簡單的解決方案是搞亂PYTHONPATH: 一個簡單的export PYTHONPATH=.就可以了。但是,我不喜歡這樣做,也不喜歡相對導入。我現在有什么選擇?
查看完整描述

1 回答

?
蠱毒傳說

TA貢獻1895條經驗 獲得超3個贊

導入機制基于 PYTHONPATH。

當您運行 時python main.py,包含的目錄main.py位于 PYTHONPATH 中,因此那里的所有其他包也是可導入的。

運行時python formats/writer.py,該formats目錄在 PATHONPATH 中,而其父目錄不在,因此您無法導入不在formats.

你可以做的是運行writer模塊,但是在 PATHONPATH 中有根目錄,你甚至可以在不弄亂環境變量的情況下做到這一點:

cd /directory/in/which/main.py/is
python -m formats.writer

python formats/writer.py與更改 PYTHONPATH 并運行不同writer.py,這會保留默認的 PYTHONPATH(當前目錄)并告訴 Python 在該路徑中查找名為的模塊formats.writer并將其作為主模塊運行。


查看完整回答
反對 回復 2023-04-18
  • 1 回答
  • 0 關注
  • 102 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號