Попытка вызова функции сценария python из некоторого другого каталога. Ниже приведен упрощенный пример: -
~/playground/octagon/bucket/pythonImport/eg $
pwd
/Users/mogli/playground/octagon/bucket/pythonImport/eg
~/playground/octagon/bucket/pythonImport/eg $
ls
foo.py
~/playground/octagon/bucket/pythonImport/eg $
cat foo.py
import sys
def hello():
print('Hello :)')
def hii():
print('Hii :)')
~/playground/octagon/bucket/pythonImport/eg $
python -c 'from foo import *; hii()'
Hii :)
~/playground/octagon/bucket/pythonImport/eg $
cd ..
~/playground/octagon/bucket/pythonImport $
ls
eg
~/playground/octagon/bucket/pythonImport $
python -c 'from eg/foo import *; hii()'
File "<string>", line 1
from eg/foo import *; hii()
^
SyntaxError: invalid syntax
~/playground/octagon/bucket/pythonImport $
python -c 'from eg.foo import *; hii()'
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named eg.foo
~/playground/octagon/bucket/pythonImport $
python -c 'from eg.foo.py import *; hii()'
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named eg.foo.py
Если каталог выполнения является тем же каталогом, где находится сценарий python, то ниже работает без проблем: -
python - c 'от foo import *; hii () '
Но если сценарий python находится в дочернем каталоге, то следующие попытки не сработали: -
python - c' например, / foo import *; hii () '
python - c' из eg.foo import *; hii () '
python - c' из eg.foo.py import *; hii () '
python версия на машине - 2.7.16