Как запустить определение Python внутри .py файла из оболочки?

Моя функция находится внутри файла .py с тем же именем, что и функция:

emp@emp:~$ python ~/Dropbox/emp/Python/stromkosten_pro_jahr.pyempedokles@empedokles:~$ stromkosten_pro_jahr(20,3)
bash: Syntaxfehler beim unerwarteten Wort »20,3«
emp@emp:~$ 

Где ошибка?

4
задан 7 May 2014 в 17:25

3 ответа

Вам нужно к cd в каталог, где Ваш файл Python расположен, и затем вызовите Python интерактивная оболочка, чтобы быть в состоянии назвать и выполнить функции в интерактивном режиме.

# cd to the directory
$ cd ~/Dropbox/emp/Python/

# invoke the python interactive shell
$ python     # use `python3` to invoke the Python3 shell

Python интерактивная оболочка посмотрела бы что-то как:

Python 2.7.6 (default, Mar 22 2014, 22:59:38) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 

Здесь можно импортировать модуль (*.py файл) и выполнить функции, записанные туда:

>>> from stromkosten_pro_jahr import stromkosten_pro_jahr
>>> stromkosten_pro_jahr(20,3)
[The output of function would be shown right here]

Для получения дополнительной информации, я предложил бы пройти Учебное руководство .

Python
0
ответ дан 7 May 2014 в 17:25

Вы не можете вызвать функции Python непосредственно от оболочки Bash. Вы получаете эту конкретную ошибку, потому что удар анализирует Ваши аргументы (20,3) как так:

$ echo (20,3)
bash: syntax error near unexpected token `20,3'

Для передачи скобок как строки, необходимо выйти из них:

$ echo \(20,3\) '(1,2)'
(20,3) (1,2)

Но это все еще не будет волшебно работать как код Python - необходимо будет проанализировать параметры командной строки в программе Python (сохраните как x.py):

import sys

def fn(a,b):
  print a+b

eval(sys.argv[1])

Затем:

$ python x.py 'fn(0,13)'
13
1
ответ дан 7 May 2014 в 17:25

Когда я нашел в этом ответ , можно работать python функция непосредственно от bash как:

$ python -c 'from a import stromkosten_pro_jahr; stromkosten_pro_jahr(20,3)'

, Где a Ваше имя файла/модуля (a.py).

, Но важная вещь должен быть в том же каталоге, как Ваш файл.

3
ответ дан 7 May 2014 в 17:25

Другие вопросы по тегам:

Похожие вопросы: