Попытка запустить скрипт Python с терминала - PullRequest
1 голос
/ 30 мая 2020

Следуя книге «Автоматизируйте скучные вещи с помощью Python», я написал сценарий Python под названием mclip.py.

#! python3
# mclip.py - A multi-clipboard program.

TEXT = {'agree': """Yes, I agree. That sounds fine to me.""",
'busy': """Sorry, can we do this later this week or next week?""", 'upsell': """Would you consider making this a monthly donation?"""}

import sys, pyperclip 

if len(sys.argv) < 2:
    print('Usage: py mclip.py [keyphrase] - copy phrase text') 
    sys.exit()

keyphrase = sys.argv[1] # first command line arg is the keyphrase

if keyphrase in TEXT:
    pyperclip.copy(TEXT[keyphrase])
    print('Text for ' + keyphrase + ' copied to clipboard.')
else:
    print('There is no text for ' + keyphrase)

Когда я запускаю это в коде Visual Studio, я получаю:

XXX@XXXs-MacBook-Pro Python Projects % /usr/local/bin/python3 "/Users/XXX/Desktop/Python Projects/mclip.py"
Usage: py mclip.py [keyphrase] - copy phrase text

Но следуя инструкциям книги при попытке запустить скрипт с терминала, набрав python3 mclip.py $busy I get:

XXX@XXXs-MacBook-Pro ~ % python3 mclip.py 
/usr/local/Cellar/python/3.7.7/Frameworks/Python.framework/Versions/3.7/Resources/Python.app/Contents/MacOS/Python: can't open file 'mclip.py': [Errno 2] No such file or directory

Он должен скопировать значение указанного c ключевого слова, но не делает этого. Я не уверен, что вызывает эту проблему. Помощь очень ценится!

Может быть, проблема с Path VS C, но я не уверен.

1 Ответ

1 голос
/ 30 мая 2020

Мне удалось решить проблему самостоятельно, и я хотел сказать здесь, что никто не должен беспокоиться о поиске решения для меня или на случай, если мое решение может быть полезно для других людей здесь. Мои ошибки были:

  1. Пытаться запустить программу без аргументов. При вызове программы мне нужно вызвать ее с аргументом: python3 mclip.py busy
  2. Сохранение моих скриптов в папке iCloud. Очевидно, его нужно сохранить локально.

Это все изменения, которые я сделал, и теперь все работает без сбоев.

Всем спасибо за помощь.

...