11.10.1 Управление путем поиска
При вызове функции Octave ищет в списке каталогов файл, содержащий объявление этой функции. Этот список каталогов называется путем поиска. По умолчанию путь поиска содержит список каталогов, поставляемых с Octave, а также текущий рабочий каталог. Чтобы просмотреть текущий путь поиска, вызовите функцию path без входных или выходных аргументов.
Каталоги можно добавлять в путь поиска и удалять из него с помощью addpath и rmpath. Например, следующий код добавляет ‘~/Octave’ в путь поиска.
addpath ("~/Octave") После этого каталог ‘~/Octave’ будет просматриваться при поиске функций.
-
: addpath
(dir1, …) -
: addpath
(dir1, …, option) -
:
oldpath =addpath(…) -
Добавить указанные каталоги в путь поиска функций.
Если option равен
"-begin"или 0 (значение по умолчанию), добавить имена каталогов в начало текущего пути. Если option равен"-end"или 1, добавить имена каталогов в конец текущего пути. Добавляемые в путь каталоги должны существовать.Помимо отдельных аргументов с именами каталогов, можно также передавать списки имен каталогов, разделенных
pathsep. Например:addpath ("dir1:/dir2:~/dir3")Новые пути отображаются в пути поиска в том же порядке, в каком они указаны в аргументах
addpath. При добавлении путей в начало последним сначала добавляется последний путь из списка аргументов. При добавлении путей в конец первым сначала добавляется первый путь из списка аргументов.Для каждого добавленного каталога, которого еще нет в пути,
addpathпроверяет наличие файла PKG_ADD (обратите внимание: расширение .m отсутствует) и запускает его, если он существует.См. также: path, rmpath, genpath, pathdef, savepath, pathsep.
-
:
pathstr =genpath(dir) -
:
pathstr =genpath(dir, skipdir1, …) -
Вернуть путь, построенный из dir и всех его подкаталогов.
Путь не включает каталоги пакетов (начинающиеся с ‘+’), каталоги классов в старом стиле (начинающиеся с ‘@’), каталоги private и любые подкаталоги этих типов.
Если указаны дополнительные строковые параметры, в результирующий путь не будут включены каталоги с такими именами.
-
: rmpath
(dir1, …) -
:
oldpath =rmpath(dir1, …) -
Удалить dir1, … из текущего пути поиска функций.
Помимо отдельных аргументов с именами каталогов, можно также передавать списки имен каталогов, разделенных
pathsep. Например:rmpath ("dir1:/dir2:~/dir3")Для каждого удаляемого каталога
rmpathпроверяет наличие файла PKG_DEL (обратите внимание: расширение .m отсутствует) и запускает его, если он существует.См. также: path, addpath, genpath, pathdef, savepath, pathsep.
- : savepath
-
: savepath
file -
:
status =savepath(…) -
Сохранить уникальную часть текущего пути поиска функций в file.
Список папок, сохраняемых в file, не включает папки, добавленные для собственных функций Octave, папки пакетов Octave (см. pkg load), а также папки, добавленные с помощью параметров командной строки.
Если file не указан, Octave ищет в текущем каталоге файл .octaverc, относящийся к конкретному проекту, и сохраняет информацию о пути в него. Если такого файла нет, используется файл конфигурации пользователя ~/.octaverc.
В случае успеха
savepathвозвращает 0.Функция
savepathпозволяет легко настроить файл конфигурации пользователя для восстановления рабочих путей, необходимых в конкретном экземпляре Octave. Если имя файла не указано, Octave автоматически восстановит сохраненные пути каталогов из соответствующего файла .octaverc при запуске. Если имя файла указано, пути можно восстановить вручную, вызвавsource file.
-
: path
() -
:
str =path() -
:
str =path(path1, …) -
Изменить или отобразить путь поиска Octave.
Если nargin и nargout равны нулю, отобразить элементы пути поиска Octave в удобном для чтения формате.
Если nargin равен нулю, а nargout больше нуля, вернуть текущий путь поиска.
Если nargin больше нуля, объединить аргументы, разделяя их с помощью
pathsep. Установить полученный результат в качестве внутреннего пути поиска и вернуть его.Проверка на наличие повторяющихся элементов не выполняется.
См. также: addpath, rmpath, genpath, pathdef, savepath, pathsep.
-
:
val =pathdef() -
Вернуть путь Octave по умолчанию.
Информация о пути извлекается из одного из четырех источников. Возможные источники в порядке приоритета:
- .octaverc
- ~/.octaverc
- <OCTAVE_HOME>/…/<version>/m/startup/octaverc
- Путь Octave до изменений, внесенных любым файлом octaverc.
-
:
val =pathsep() -
Определить символ, используемый для разделения каталогов в пути.
См. также: filesep.
-
: rehash
() Повторно инициализировать кэш каталогов пути поиска Octave.
-
:
fname =file_in_loadpath(file) -
:
fname =file_in_loadpath(file, "all") -
Вернуть абсолютное имя file, если его удается найти в списке каталогов, заданном с помощью
path.Если файл не найден, вернуть пустую строку символов.
Если file уже является абсолютным именем, оно проверяется в файловой системе, а не в пути поиска Octave. В этом случае, если file существует, он будет возвращен в fname; в противном случае возвращается пустая строка.
Если первый аргумент является массивом ячеек со строками, выполнить поиск каждого элемента массива во всех каталогах пути поиска и вернуть первое совпадение.
Если указан второй необязательный аргумент
"all", вернуть массив ячеек со списком всех файлов с таким же именем, найденных в пути. Если файлы не найдены, вернуть пустой массив ячеек.См. также: file_in_path, dir_in_loadpath, path.
-
:
pathstr =restoredefaultpath() -
Восстановить исходный путь Octave, установленный при запуске.
Повторно инициализированный путь возвращается в качестве выходного значения.
См. также: path, addpath, rmpath, genpath, pathdef, savepath, pathsep.
-
:
pathstr =command_line_path() -
Вернуть аргумент пути, переданный Octave в командной строке при запуске интерпретатора (
--path arg).См. также: path, addpath, rmpath, genpath, pathdef, savepath, pathsep.
-
:
dirname =dir_in_loadpath(dir) -
:
dirname =dir_in_loadpath(dir, "all") -
Вернуть абсолютное имя элемента пути поиска, соответствующего dir, если его удается найти в списке каталогов, заданном с помощью
path.Если совпадений нет, вернуть пустую строку символов.
Сопоставление выполняется с концом каждого элемента пути. Например, если dir равен
"foo/bar", он соответствует элементу пути"/some/dir/foo/bar", но не"/some/dir/foo/bar/baz""/some/dir/allfoo/bar". Если dir является абсолютным именем, а не просто фрагментом пути, сопоставление выполняется с файловой системой, а не с путем поиска Octave. В этом случае, если dir существует, он будет возвращен в dirname; в противном случае возвращается пустая строка.Если указан необязательный второй аргумент, вернуть массив ячеек со всеми совпадениями, а не только с первым.
См. также: file_in_path, file_in_loadpath, path.
-
:
current_encoding =mfile_encoding() -
: mfile_encoding
(new_encoding) -
:
old_encoding =mfile_encoding(new_encoding) -
Запросить или задать кодировку, используемую для чтения m-файлов.
Входные и выходные значения — это строки с названиями кодировок, например
"utf-8".Эта кодировка используется анализатором Octave при чтении m-файлов, если для конкретного каталога с m-файлами не задана другая кодировка с помощью функции
dir_encodingили в файле .oct-config в этом каталоге.Специальное значение
"system"выбирает кодировку, соответствующую локали системы.Если кодировка m-файлов изменена после того, как эти файлы уже были разобраны, их необходимо разобрать повторно, чтобы изменение вступило в силу. Это можно выполнить командой
clear all.Кроме того, эта кодировка используется для загрузки и сохранения файлов во встроенном редакторе графического интерфейса Octave.
См. также: dir_encoding.
-
:
current_encoding =dir_encoding(dir) -
: dir_encoding
(dir, new_encoding) -
: dir_encoding
(dir, "delete") -
:
old_encoding =dir_encoding(dir, new_encoding) -
Запросить или задать encoding, используемую для чтения m-файлов в dir.
Кодировка, заданная для каталога, имеет приоритет над кодировкой m-файлов (установленной глобально); см.
mfile_encoding.Строка DIR должна соответствовать тому виду, в котором каталог отображается в пути поиска.
Входное значение new_encoding должно быть допустимым идентификатором кодировки или
"delete". Во втором случае все настройки кодировки для отдельных каталогов удаляются, а для указанного dir будет использоваться кодировка m-файлов, заданная глобально.Текущая или ранее использовавшаяся кодировка возвращается только при наличии выходного аргумента.
Кодировка каталога автоматически считывается из файла .oct-config при добавлении нового пути в путь поиска (например, с помощью
addpath). Чтобы задать кодировку для всех файлов в одной папке, этот файл должен содержать строку, начинающуюся с"encoding=", за которой следует идентификатор кодировки.Например, чтобы задать кодировку файлов ISO 8859-1 (Latin-1) для всех файлов в одной папке, создайте файл .oct-config со следующим содержимым:
encoding=iso8859-1
Если кодировка файлов изменена после того, как файлы уже были разобраны, их необходимо разобрать повторно, чтобы изменение вступило в силу. Это можно выполнить командой
clear all.См. также: addpath, path, mfile_encoding.
© 1996–2026 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v9.4.0/Manipulating-the-Load-Path.html