簡體   English   中英

PyDev Eclipse中“源文件夾”和“pydev包”有什么區別?

[英]What is the difference between a “source folder” and a “pydev package” in PyDev Eclipse?

PyDev Eclipse中“源文件夾”和“pydev包”有什么區別?

用於在PyDev中創建新項目的菜單選項

“源文件夾”是包含源文件的目錄。 將.py文件放入此目錄將使PyDev可以發現它們,以便您可以從其他Python文件中導入它們。

“PyDev Package”是一個Python包。 這意味着它包含一個名為__init__.py的文件。 例如,如果您創建一個名為foo的新PyDev包,那么您將獲得文件foo/__init__.py 您可以將其他.py文件放入foo/ ,然后可以導入。 所以,如果你將bar.py放入foo/ ,那么你可以這樣做

import foo.bar

源文件夾無法做到這一點。

您通常將包放入源文件夾中。 我不知道是否可以將源文件夾放入包中,但即使它是你幾乎不會這樣做。

是具有邏輯分組的文件的收集器

import <package>.<file>

和一個源文件夾使文件可以直接導入

import <file>

並且常規文件夾基本上無法訪問。

我做了一個快速的項目,顯示了差異。 我在每種類型的容器中放入一個文件: 常規文件夾源文件夾 每個文件都有兩個項目:一個名為show()的函數和一個具有單個公共成員show()的類

在此輸入圖像描述

然后我將驅動程序文件放在頂層(在項目根目錄中,在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()

源文件夾是添加到PYTHONPATH的文件夾。

包是一個具有__init__.py文件的文件夾(位於源文件夾下)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM