Jaka jest różnica między "folderem źródłowym" a "pakietem pydev" w PyDev Eclipse?Jaka jest różnica między "folderem źródłowym" a "pakietem pydev" w PyDev Eclipse?
Odpowiedz
A "Folder źródłowy" jest katalogiem, który zawiera pliki źródłowe. Umieszczenie plików .py w tym katalogu sprawi, że będą one wykrywalne przez PyDev, dzięki czemu można na przykład zaimportować je z innych plików Pythona.
"Pakiet PyDev" to pakiet Pythona. Oznacza to, że zawiera plik o nazwie __init__.py
. Na przykład, jeśli utworzysz nowy pakiet PyDev o nazwie foo
, otrzymasz plik foo/__init__.py
. Możesz wstawić inne pliki .py do foo/
, które następnie możesz zaimportować. Tak więc, jeśli umieścić bar.py
do foo/
, to można zrobić
import foo.bar
To nie jest możliwe, z folderów źródłowych.
Zwykle umieszczasz paczki w folderach źródłowych. Nie wiem, czy możliwe jest umieszczenie folderu źródłowego w pakiecie, ale nawet gdyby tak było, prawie nigdy byś tego nie zrobił.
Folder źródłowy to folder dodawany do PYTHONPATH.
Pakiet to folder z plikiem __init__.py
(który znajduje się pod folderem źródłowym).
pakiet jest kolektor plików, które mają logiczne grupowanie
import <package>.<file>
i folder źródłowy sprawia pliki bezpośrednio importable
import <file>
i regularne folderu jest zasadniczo niedostępne.
Zrobiłem szybki projekt, który pokazuje różnice. Umieściłem jeden plik w każdym typie kontenera: regularny folder, pakiet i folder źródłowy. Każdy plik miał dwa elementy: funkcja nazywa show() i klasa z jednym pokazie członkiem społeczeństwa()
I następnie umieścić plik sterownika na najwyższym poziomie (w katalogu głównym projektu, obok 3 pojemników). Miało to na celu wypróbowanie różnych sposobów importowania rzeczy. Oto kopia tego pliku sterownika z komentarzem do opisania w jaki sposób poszczególne elementy są wykorzystywane:
### 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()
Folder źródłowy tworzy moduły bezpośrednio "pod ścieżką klas", wyrażone w języku Java, podczas gdy pakiet w Pythonie jest podobny do pakietu w Javie. – FaithReaper
- 1. Jaka jest różnica między pakietem a intencją?
- 2. Jaka jest różnica między pakietem yarn.lock a pakietem npm?
- 3. Jaka jest różnica między pakietem dll a pakietem nuget?
- 4. nierozwiązany import w eclipse pydev
- 5. Jaka jest różnica między "pakietem" a "modułem" w programie Frege?
- 6. Używanie msvcrt.getch() w Eclipse/PyDev
- 7. Eclipse PyDev wykorzystuje zdalny interpreter
- 8. Nierozwiązany import csv Pydev Eclipse
- 9. Jaka jest różnica między udostępnionym folderem a zsynchronizowanym folderem w Vagrant?
- 10. Błąd memcache Eclipse + PyDev + GAE
- 11. Różnica między modułem a pakietem w węźle?
- 12. Konsola interaktywna przy użyciu Pydev w Eclipse?
- 13. Linie kodu w projektach Eclipse PyDev
- 14. Zintegruj django przez pydev w Eclipse?
- 15. Pewna różnica między pakietem a przepakowywaniem
- 16. Zakończenie realizacji Eclipse PyDev (jeszcze raz)
- 17. debugowanie z PyDev 1.5
- 18. Eclipse Pydev: Uruchomienie wybranych linii kodu
- 19. Nie można zainstalować PyDev dla Eclipse Indigo
- 20. Python do dokumentu za pomocą Eclipse/Pydev
- 21. Konfiguracja Eclipse Juno z PyDev i virtualenv
- 22. Django + Pydev/Eclipse + Google App Engine - możliwe?
- 23. Scrapy + Eclipse PyDev: jak skonfigurować debugger?
- 24. Korzystanie z Eclipse PyDev na OSX
- 25. Jaka jest różnica między == a === w Verilog?
- 26. Pydev i pliki * .pyc
- 27. Wyświetlanie dokumentacji funkcji w PyDev
- 28. Jaka jest różnica między Eclipse i Myeclipse
- 29. Różnica między scenopisem a pakietem scenorysów?
- 30. Jaka jest różnica między aplikacją sieci Web a folderem wirtualnym w kontekście usług IIS 7.x?
ma folderu źródłowego muszą zawierać '__init __ py' tak że interpreter można znaleźć moduły w tym folderze.? – alwbtc
Nie - po to są pakiety. :) –
"folder źródłowy" jest lepszy, robi to samo i nie wymaga pliku '__init __. Py'. dobrze? – alwbtc