Импорт модулей с и без сборки setuptools - PullRequest
0 голосов
/ 30 декабря 2018

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

Все модули существуют в пакете tlen.В моем приложении я использую, например.from Sender import Sender где Отправитель tlen/Sender.py модуль.

Все работает хорошо, когда я запускаю tlen/main.py.

Проблема существует, когда я пытаюсь выполнить пакет с помощью sudo python setup.py install и выполнить команду tlen,Затем я получаю:

File "/usr/lib/python3.7/site-packages/tlen-1.0-py3.7.egg/tlen/main.py", line 3, in <module>ModuleNotFoundError: Nomodule named 'Sender'

Весь проект: https://github.com/tloszabno/tl_en

Мой файл setup.py:

setuptools.setup(
name='tlen',
version='1.0',
author='Tomasz Łoś',
author_email='tloszabno@gmail.com',
description='A tool to learn foreign language',
packages=["tlen"],
entry_points={
    'console_scripts': [
        'tlen = tlen.main:main'
    ]
},
classifiers=[
    'Programming Language :: Python :: 3',
    'License :: OSI Approved :: MIT License',
    'Operating System :: OS Independent',
],
)

Что я делаю не так с import с?

1 Ответ

0 голосов
/ 30 декабря 2018

Ха, я решил это!

Просто добавил файл app.py в главный каталог (.. tlen) с содержанием:

#!/usr/bin/env python
from tlen import main as app
def main():
    app.main()
if __name__ == '__main__':
    main()

затем setup.py:

import setuptools
setuptools.setup(
name='tlen',
version='1.0',
author='Tomasz Łoś',
author_email='tloszabno@gmail.com',
description='A tool to learn foreign language',
packages=["tlen"],
entry_points={
    'console_scripts': [
        'tlen = app:main'
    ]
},
classifiers=[
    'Programming Language :: Python :: 3',
    'License :: OSI Approved :: MIT License',
    'Operating System :: OS Independent',
],
scripts=[
        'app.py',
       ]

)

...