Подтвердить что ты не робот

В чем разница между "исходной папкой" и "пакетом pydev" в PyDev Eclipse?

В чем разница между "исходной папкой" и "пакетом pydev" в PyDev Eclipse?

Параметры меню для создания нового элемента в PyDev

4b9b3361

Ответ 1

"Исходная папка" - это каталог, содержащий исходные файлы. Включение .py файлов в этот каталог сделает их доступными для PyDev, так что вы можете, например, импортировать их из других файлов Python.

"Пакет PyDev" представляет собой пакет Python. Это означает, что он содержит файл с именем __init__.py. Например, если вы создадите новый пакет PyDev с именем foo, вы получите файл foo/__init__.py. Вы можете поместить другие .py файлы в foo/, которые затем можно импортировать. Итак, если вы поместите bar.py в foo/, то вы можете сделать

import foo.bar

Это невозможно с исходными папками.

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

Ответ 2

a package - это сборщик для файлов с логической группировкой

import <package>.<file>

и исходная папка делает файлы напрямую импортируемыми

import <file>

и обычная папка в основном недоступна.

Я сделал быстрый проект, который показывает различия. Я помещаю один файл в каждый тип контейнера: обычная папка, пакет и исходная папка. Каждый файл имел два элемента: функция, называемая show() и класс с показом одного публичного участника()

enter image description here

Затем я помещаю файл драйвера на верхний уровень (в корне проекта, рядом с 3 контейнерами). Это было просто попробовать разные способы импорта вещей. Вот копия этого файла драйвера с комментариями для описания того, как используются различные элементы:

### valid imports
import package
import package.file_in_package as thefileinpackage
import file_in_source

### invalid imports
#import package.file_in_package.packageclass   #runtime ImportError
#import file_in_package                        #unresolved import

#import source                                 #unresolved import
#import source.file_in_source                  #unresolved import
#import file_in_source.sourceclass             #runtime ImportError

#import folder                                 #unresolved import
#import file_in_folder                         #unresolved import
#import folder.file_in_folder                  #unresolved import

thefileinpackage.show()
packageclasss_inst = thefileinpackage.packageclass()
packageclasss_inst.show()

file_in_source.show()
sourceclass_inst = file_in_source.sourceclass()
sourceclass_inst.show()

package.file_in_package.show()
packageclass_inst2 = package.file_in_package.packageclass()
packageclass_inst2.show()

Ответ 3

Исходная папка - это папка, добавленная в PYTHONPATH.

Пакет представляет собой папку с файлом __init__.py (и который находится под исходной папкой).