модуль импорта Python не работает - PullRequest
0 голосов
/ 21 сентября 2018
custom/
    scripts/
    __init__.py
    file1.py
    utils/
        __init__.py
        utilFile1.py
        utilFile2.py
        utilFile3.py

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

Я пытаюсь импортировать эти модули в Maya, и когда я запускаю from utils import utilFile1 Я получаю ImportError: cannot import name utilFile1. Запуск from custom.scripts.utils import utilFile1 выдает мне эту ошибку ImportError: no module named custom.scripts.utils. Однако, если я запускаю import file1, он импортирует без каких-либо ошибок

Я добавил пользовательские / scripts к sys.path и, когда это не сработало, попытался добавить пользовательские / scripts / utils, но это тоже не сработало.Основываясь на некоторых постах на stackoverflow, я видел некоторых людей, предлагающих запустить "python -m", но я не уверен, должен ли я запускать это или где выполнять его.

Я действительно впотеря, почему я не могу заставить это работать вообще.

Ответы [ 3 ]

0 голосов
/ 21 сентября 2018

Пожалуйста, обновите структуру каталогов, как показано ниже.Возможно, Python не рассматривает custom как модуль, так как у него нет файла __init__.py,

custom/
    __init__.py
    scripts/
    __init__.py
    file1.py
    utils/
        __init__.py
        utilFile1.py
        utilFile2.py
        utilFile3.py
0 голосов
/ 25 сентября 2018

Метод Яша работает, я полагаю, что именно это компании используют для настройки своих сред.Альтернативный способ - добавить путь к вашим сценариям как PYTHONPATH в вашем файле maya.env вместо использования sys.path.append.Я не уверен, почему есть разница или потому что я пытаюсь это сделать на Windows, но, как ни странно, это сработало в моем случае.

0 голосов
/ 21 сентября 2018

вы сделаете его пакетом python, выполнив следующие шаги:

в вашем корневом каталоге создайте setup.py, в вашем случае

custom/
    setup.py
       scripts/
       ...
       ...

в setup.py

from setuptools import setup, find_packages

setup(
    name='your_package_name',
    description='bla bla bla',
    version='0.0.1-dev',
    install_requires=[

    ],
)

и затем нажмите

pip install -e .

для получения дополнительной информации см. этот документ

...