Я хотел бы создать инструмент cli и найти его в качестве ссылки: https://python-packaging.readthedocs.io/en/latest/command-line-scripts.html
Итак, я создал каталог со следующей структурой
$ tree modules_and_packages
modules_and_packages
├── bin
│ ├── cli_script
│ └── cli_script~
├── __init__.py
├── setup.py
├── setup.py~
├── some_module.py
└── some_module.py~
Я могу без проблем установить модуль через pip:
pip3 install ./modules_and_packages
Processing ./modules_and_packages
Installing collected packages: some-module
Running setup.py install for some-module ... done
Successfully installed some-module-0.0.0
Но когда я запускаю cli_script
в командной строке, я получаю следующую ошибку:
Traceback (most recent call last):
File "/home/david/.local/bin/cli_script", line 3, in <module>
import modules_and_packages
ModuleNotFoundError: No module named 'modules_and_packages'
Вот что находится в файлах:
setup.py
from setuptools import setup
setup(
name='some_module',
py_modules=['some_module'],
scripts=['bin/cli_script']
)
some_module.py
def some_func():
return 42
bin / cli_script
#!/usr/bin/env python3
import modules_and_packages
print('hello')
Как вы можете видите, я просто пытаюсь протестировать простейший пример создания инструмента командной строки с использованием модуля. Что я тут не так делаю?
РЕДАКТИРОВАТЬ:
Сообщение об ошибке, которое я получаю при попытке импортировать some_module после попытки подсказки hoefling
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/david/.local/lib/python3.6/site-packages/some_module.py", line 1
def some_func():
^
SyntaxError: invalid character in identifier