Ответ 1
Это каталог script, который добавляется, а не текущий каталог. Если вы превратите inner_folder/
в пакет, вы можете использовать python -m inner_folder.myscript
, чтобы запустить script, добавив app/
к sys.path
.
Я продолжаю видеть сайты, говорящие о том, что каталог, который вы выполняете 'python', добавляется в путь python. Например, на http://www.stereoplex.com/blog/understanding-imports-and-pythonpath, автор cd в папку /tmp затем выполняет 'print (sys.path)' и lo and behold,/tmp отображается в списке путей. Вот я пробовал это в своей системе (с установкой 2.6.6):
Пример структуры:
app/
mymodule.py
inner_folder/
myscript.py
в myscript.py содержит строку:
import 'mymodule.py'
что я сделал:
cd app
python inner_folder/myscript.py # ImportError
Поскольку я выполняю интерпретатор из каталога app/, не следует ли "app" помещаться на путь python? Вот как многие документы, которые я читал, указали, что поведение должно быть.
Пожалуйста, просветите!
(Я временно решил это, вручную добавив папку, которую я хочу в среду, но не хочу полагаться на нее навсегда. Поскольку многие сайты говорят, что это можно сделать, я хотел бы воспроизвести ее для себя)
Это каталог script, который добавляется, а не текущий каталог. Если вы превратите inner_folder/
в пакет, вы можете использовать python -m inner_folder.myscript
, чтобы запустить script, добавив app/
к sys.path
.
Независимо от того, находится ли текущий каталог в sys.path
, операторы импорта обычно выглядят следующим образом:
import mymodule
Код, который вы написали, выглядит так:
import 'mymodule.py'