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 (…) ¶
-
Сохраняет уникальную часть текущего пути поиска функций, которая не установлена во время инициализации Octave, в file.
Если 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 = 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 = dir_encoding (dir) ¶
- : dir_encoding (dir, new_encoding) ¶
- : dir_encoding (dir, "delete") ¶
- : old_encoding = dir_encoding (dir, new_encoding) ¶
-
Запрос или установка кодировки encoding, используемой для чтения файлов m в dir.
Кодировка по каталогу переопределяет (глобально установленную) кодировку файлов m.
Строка DIR должна соответствовать тому, как каталог отображается в пути загрузки.
Входной параметр new_encoding должен быть допустимым идентификатором кодировки или
"delete". В последнем случае любая кодировка по каталогу удаляется, и для данного dir будет использоваться (глобально установленная) кодировка файлов m.Текущая или предыдущая используемая кодировка возвращается только в случае запроса выходного аргумента.
Кодировка каталога автоматически считывается из файла .oct-config при добавлении нового пути в путь загрузки (например, с помощью
addpath). Чтобы установить кодировку для всех файлов в той же папке, этот файл должен содержать строку, начинающуюся с"encoding=", за которой следует идентификатор кодировки.Например, чтобы установить кодировку файлов для всех файлов в той же папке на ISO 8859-1 (Latin-1), создайте файл .oct-config со следующим содержимым:
encoding=iso8859-1
Если кодировка файла изменилась после того, как файлы уже были обработаны, эти файлы необходимо обработать снова, чтобы изменения вступили в силу. Это можно сделать с помощью команды
clear all.
© 1996–2023 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/v8.1.0/Manipulating-the-Load-Path.html