У меня такая структура каталогов...
dir/
build.py
dir2
dir3/
packages.py
Теперь для build.py
требуется packages.py
-- и обратите внимание, что dir2
не является пакетом.
Итак, как лучше всего загрузить packages.py
в build.py
(структура каталогов не может быть изменена)
РЕДАКТИРОВАТЬ
The sys.path.Решение append
кажется хорошим -- но есть одна вещь -- мне нужно редко использовать файл packages.py
-- и сохранять sys.path
, который включает каталог который используется редко, но находится на переднем крае — это самое лучшее?
РЕДАКТИРОВАТЬ II
Я думаю, что решение imp
является лучшим.
import imp
packages = imp.load_source('packages', '/path/to/packages.py')
РЕДАКТИРОВАТЬ III
Обратите внимание, что imp.load_source
и некоторые другие функции устарели. Так что сегодня вам следует использовать imp.load_module
.
fp, pathname, description = imp.find_module('packages', '/path/to/packages.py')
try:
mod = imp.load_module('packages', fp, pathname, description)
finally:
# since we may exit via an exception, close fp explicitly
if fp:
fp.close()