PyDev Eclipseの「ソースフォルダ」と「pydevパッケージ」の違いは何ですか?
3 に答える
パッケージは、論理グループを持つファイルのコレクターです
import <package>.<file>
ソースフォルダーにより、ファイルを直接インポートできます
import <file>
通常のフォルダには基本的にアクセスできません。
違いを示す簡単なプロジェクトを作成しました。通常のフォルダー、パッケージ、ソース フォルダーの各種類のコンテナーに 1 つのファイルを配置します。各ファイルには、show() という関数と、単一の public メンバー show() を持つクラスの 2 つの項目がありました。
次に、ドライバー ファイルを最上位 (プロジェクト ルートの 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()
「ソース フォルダ」は、ソース ファイルを含むディレクトリです。.py ファイルをこのディレクトリに置くと、PyDev で検出できるようになり、たとえば、他の Python ファイルからインポートできるようになります。
「PyDev パッケージ」は Python パッケージです。これは、というファイルが含まれていることを意味します__init__.py
。たとえば、 namefoo
で新しい PyDev Package を作成すると、 file が取得されますfoo/__init__.py
。他の .py ファイルをfoo/
に配置して、インポートすることができます。したがって、に配置bar.py
するfoo/
と、次のことができます
import foo.bar
これは、ソース フォルダーでは不可能です。
通常、パッケージはソース フォルダーに配置します。ソース フォルダーをパッケージに配置できるかどうかはわかりませんが、仮に配置できたとしても、ほとんど実行することはありません。