Невозможно прокрутить скрипты Python через пакет Pypi - PullRequest
0 голосов
/ 05 июля 2018

Я пытаюсь опубликовать пакет python, и у меня возникают проблемы с его запуском после установки через pip. Я полагаю, что это связано с моим свойством "entry_points" в моем файле setup.py.

В настоящее время я могу скачать проект через pip install my_package_name. Когда я пытаюсь запустить пакет, я ввожу my_package_name и получаю NameError, говорящее initialize() is not defined. Однако, если я введу python path/to/my_package_name/__main__.py, он будет работать нормально. Ниже приведено дерево моего проекта и мои файлы setup.py и __main__.py для справки:

my_package_name/  
    setup.py  
    my_package_name/  
        __init__.py  
        __main__.py  
        my_package_name.py  

setup.py:

from distutils.core import setup

setup(
    name = 'my_package_name',
    version = '0.0.1',
    packages = ['my_package_name'],
    install_requires = ['this', 'that'],
    license = 'Creative Commons Attribution-Noncommercial-Share Alike license',
    description = 'My cool python package',
    long_description = open('readme.txt').read(),
    url = 'mypackagename.github.io',
    author = 'My Name',
    entry_points = {
        'console_scripts': [
            'my_package_name = my_package_name.__main__:main' # this is likely what I'm doing wrong
        ]
    },
)

__main__.py

from my_package_name import *

def main(args=None):
    """The main routine."""
    if args is None:
        args = sys.argv[1:]

    initialize()
    do_something()
    do_something_else()

if __name__ == "__main__":
    main()

Если вам нужна дополнительная информация, пожалуйста, дайте мне знать. Это мое первое знакомство с python, так что, возможно, мне не хватает большого кусочка с общими знаниями. Любая помощь или предложения с благодарностью. Спасибо!

Редактировать Вот полный журнал ошибок при запуске my_package_name

Traceback (most recent call last):
  File "C:\Program Files (x86)\Python36-32\Scripts\my_package_name-script.py", line 11, in <module>
    load_entry_point('my_package_name==0.0.1', 'console_scripts', 'my_package_name')()
  File "c:\program files (x86)\python36-32\lib\site-packages\my_package_name\__main__.py", line 12, in main
    initialize()
NameError: name 'initialize' is not defined
...