Что я здесь не так делаю ???
Моя структура: -
├── tst
│ ├── setup.py
│ └── tst
│ ├── __init__.py
│ ├── mre.py
│ └── start.py
содержимое файла start.py
from mre import mre
def proc1():
mre.more()
return ('ran proc1')
if __name__ == "__main__":
print('test')
print(proc1())
содержимое файла mre.py
class mre(object):
def more():
print('this is some more')
содержимое файла setup.py
from setuptools import setup
setup(name='tst',
version='0.1',
description='just a test',
author='Mr Test',
author_email='test@example.com',
entry_points={'console_scripts': ['tst=tst.start:proc1']},
license='MIT',
packages=['tst'],
zip_safe=False)
ничего в __init__.py
Когда я запускаю это из командной строки, все в порядке, работает как положено. Однако, когда я упаковываю это с помощью PIP и запускаю, используя tst, я получаю: -
Traceback (most recent call last):
File "/home/simon/.local/bin/tst", line 5, in <module>
from tst.start import proc1
File "/home/simon/.local/lib/python3.8/site-packages/tst/start.py", line 1, in <module>
from mre import mre
ModuleNotFoundError: No module named 'mre'
Я прочитал множество постов, и я просто не могу понять это, если я go в установите код и измените строку
from mre import mre
на
from tst.mre import mre
, тогда это сработает, но тогда это не сработает при запуске его из каталога в целях разработки ... I ' Я, очевидно, упускаю что-то очевидное :) Это проблема пути или я пропускаю команду в файле setup.py?
Если кто-то может указать мне правильное направление?
edit: я могу Нужно сделать что-то другое при разработке модуля, который будет упакован, возможно, назвать код по-другому?
cheers