簡體   English   中英

導入本地程序包而不修改sys.path

[英]importing a local package without modifying sys.path

這是我的目錄設置:

mydir
├── folder
    └── subfolder
        └── script1.py
└── shared
    ├── otherstuff
    ├── script2.py
    └── pkg
        ├── box.py
        └── __init__.py

script2.py開頭為

import pkg 

而且效果很好。 當我在script1.py包含同一行時,我得到:

Traceback (most recent call last):
  File "script1.py", line 1, in <module>
    import pkg
ImportError: No module named 'pkg'

有什么好的方法可以使script1.py語法變得簡單? 我目前在import pkg之前正在使用sys.path.insert(0, os.path.abspath('./shared')) (我是從mydir調用script1 ),但這並不能使其易於重復使用,而且很笨拙,修改sys.path通常可能是個壞主意。

我在這里想念什么? pkg放入script1.py的最佳方法是什么?

注意:我昨天問過這個問題 ,但是我沒有意識到那里的答案對於上面的dir結構是行不通的,而這正是我真正需要的。 哎呀。

Python 3.x,順便說一句。

嘗試這個。

sys.path.append('./../../shared/')

嚴格限制:僅當將其插入script1.py且僅當script1.py保留在mydir/folder/subfolder子目錄中時,此方法才有效。

而且,據我所知,在這種情況下修改sys.path幾乎是您必須要做的,因此不要為此感到難過。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM