Помощь с включением файлов в проект

226 просмотра
0
0 Комментариев

Доброго времени суток!

Столкнулся с такой проблемой, которая состоит в том, что я не знаю как включить нужные мне модули в мой проект. Получается это сделать только, если указываю полный путь до папки, где лежат модули:

клик

Так вот, как мне сделать так, чтобы не указывать путь до папки, начиная от имени диска (в моём случает от «W:..»), а только путь от файла, где я использую модули?

клик

Красным кружком выделен использующий файл, а стрелочкой — папка, где лежат мои модули.

P.S. прошу прощения за кривое объяснение.
P.S.S. Кто-нибудь знает способ, чтобы то же самое проделать с либой Pygame? Просто, там тоже нужно включать файлы в проект, а я умею только через полное имя файла вот так os.path.join(PATH_TO_FILE , FILE_NAME.expansion).

Спасибо за то, что уделили мне своё время.


Добавить комментарий

2 Answers

Python Опубликовано 18.12.2018
0

Модули, которые не являются частью вашего проекта, такие как pygame следует устанавливать (к примеру, с помощью pip install pygame). Это автоматически помещает pygame (среди прочего) в директорию из sys.path по умолчанию (site.getsitepackages()).

Модули, которые являются часть проекта, следует в пакет объединить. Структура:

Ваш проект/
  README.rst
  setup.py
  ваш_пакет/
    __init__.py  # отмечаем как пакет
    __main__.py  # основной скрипт
    модуль.py
    подчинённый_пакет/
      __init__.py
      ещё_модуль.py
      итд.py

ещё_модуль можно проимпортировать из __main__.py:

from ваш_пакет.подчинённый_пакет import ещё_модуль

В такой структуре, запустить скрипт (__main__.py) вы можете, используя

C:\путь\Ваш проект> py -mваш_пакет

(Если хотите запускать не только из директории Ваш проект, то следует ваш пакет установить, к примеру, на время разработки командой:

C:\путь\Ваш проект> py -mpip install -e .

Полезно проглядеть https://packaging.python.org/

Чтобы руками каждый раз, начиная новый проект, одинаковую структуру, подходящую для вашего типа проектов не создавать, можно cookiecutter использовать. Если вы знакомы с такими инструментами как composer (PHP), cargo (Rust),
то попробуйте poet.

Добавить комментарий
0

from Zenon.Modules.[имя скрипта без расширения] import [Названия импортируемых классов, функций через запятую]

Например:
from Zenon.Modules.Script2 import SomeMyClass

Аналогично будет(следуя от текущей папки):
from .Modules.Script2 import SomeMyClass

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up