PyDev Eclipse中"源文件夹"和"pydev包"有什么区别?

alw*_*btc 16 python eclipse pydev package

PyDev Eclipse中"源文件夹"和"pydev包"有什么区别?

用于在PyDev中创建新项目的菜单选项

Mic*_*ann 11

"源文件夹"是包含源文件的目录.把.py文件到这个目录将使他们发现通过PyDev的,这样就可以例如从其他Python文件中导入.

"PyDev Package"是一个Python包.这意味着它包含一个名为的文件__init__.py.例如,如果您使用名称创建一个新的PyDev包foo,那么您将获得文件foo/__init__.py.您可以将其他.py文件放入foo/其中,然后可以导入.所以,如果你bar.py放入foo/,那么你可以做到

import foo.bar
Run Code Online (Sandbox Code Playgroud)

源文件夹无法做到这一点.

您通常将包放入源文件夹中.我不知道是否可以将源文件夹放入包中,但即使它是你几乎不会这样做.


anr*_*gen 11

一个是用于具有逻辑分组文件的集电极

import <package>.<file>
Run Code Online (Sandbox Code Playgroud)

和一个源文件夹使文件可以直接导入

import <file>
Run Code Online (Sandbox Code Playgroud)

并且常规文件夹基本上无法访问.

我做了一个快速的项目,显示了差异.我在每种类型的容器中放入一个文件:常规文件夹,源文件夹.每个文件都有两个项目:一个名为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()
Run Code Online (Sandbox Code Playgroud)