Ну, как вы упоминаете, обычно вы хотите иметь доступ к папке с вашими модулями относительно места запуска вашего основного скрипта, поэтому вы просто импортируете их.
Решение:
У меня есть скрипт в D:/Books/MyBooks.py
и некоторые модули (например, oldies.py). Мне нужно импортировать из подкаталога D:/Books/includes
:
import sys,site
site.addsitedir(sys.path[0] + '\\includes')
print (sys.path) # Just verify it is there
import oldies
Поместите print('done')
в oldies.py
, чтобы убедиться, что все идет хорошо. Этот способ всегда работает, потому что по определению Python sys.path
, инициализированному при запуске программы, первый элемент этого списка, path[0]
, является каталогом, содержащим скрипт, который использовался для вызова интерпретатора Python.
Если каталог скриптов недоступен (например, если интерпретатор вызывается в интерактивном режиме или если скрипт читается из стандартного ввода), path[0]
- это пустая строка, которая направляет Python для поиска модулей в текущем каталоге в первую очередь. Обратите внимание, что каталог сценария вставляется перед записями, вставленными в результате PYTHONPATH
.