4

Я установил документы в моей системе Mac OS, следуя инструкциям по документации .

Я также сделал:

$ sudo cp tools/buildhtml.py tools/rst2html.py /usr/local/bin

Однако если я открою командную строку и rst2html , я получу команду «команда не найдена».

Если я rst2html.py , проблем не возникнет , поэтому сам файл Python находится у меня на пути.

Как заставить мою систему распознавать rst2html как допустимую команду?

Спасибо!

2 ответа2

4

Я не знаю о Mac, но, как правило, в системе Unix расширение файла не подразумевается. На самом деле расширение имени файла редко имеет какое-либо особое значение. Однако есть много хитростей Unix, которые могут вам помочь, возможно, создание символической ссылки:

$ sudo ln -s rst2html.py /usr/local/bin/rst2html
2

Когда вы вводите команду rst2html в командной строке, она будет искать программу с именем rst2html (не rst2html.somethingorother) в каталогах в вашей переменной PATH. Если вы хотите, чтобы rst2html работал, вам нужен файл с именем rst2html. Есть несколько способов сделать это:

  1. Переименуйте программу. Нет необходимости в расширении .py, так как система знает, что это скрипт Python из-за его строки shebang .

    sudo mv /usr/local/bin/rst2html.py /usr/local/bin/rst2html
    
  2. Жесткая ссылка на программу. Программа может быть указана в каталоге /usr /local /bin под двумя разными именами, rst2html.py и rst2html, и любое из них можно использовать для ее запуска.

    sudo ln /usr/local/bin/rst2html.py /usr/local/bin/rst2html
    
  3. Символическая ссылка на программу. Аналогично жестким ссылкам, за исключением того, что только один является "настоящим" файлом, а другой - просто псевдонимом в стиле Unix. Это может быть немного проще, чем жесткая ссылка, потому что, если вы когда-либо установите обновленную версию, ссылка будет автоматически использовать новую версию (хотя при наличии жесткой ссылки вам нужно будет обновить ссылку вручную).

    sudo ln -s rst2html.py /usr/local/bin/rst2html
    

Лично я бы просто переименовал его (вариант 1), но любой из других вариантов также должен работать нормально.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .