Próbuję ocenić niektóre zgłoszenia Pythona, które znajdują się w oddzielnych folderach dla każdego ucznia. Aby to zrobić, istnieje funkcja, na przykład f(), którą chcę uruchomić. Rozumiem, że jeśli moja obecna ścieżka jest taki sam jak ten, w którym się znajduje, mogę po prostu zrobićImportowanie Pythona z podfolderów
import filename
filename.f()
Jednak istnieją lepsze sposoby? Na przykład, powiedzmy, że struktura katalogów jest następująca:
main.py
student/run_this.py
wiem, że jeśli istnieje „__init__.py” plik w folderze studenta, można po prostu wpisać
import student.run_this
jednak bez tego pliku nie działa.
Niektóre podobne pytania znalazłem były
- Import module from subfolder
- How to do relative imports in Python?
- http://www.daniweb.com/software-development/python/threads/192000/import-from-a-subdirectory-of-a-directory-on-pythonpath
ale żaden z nich nie dał szczególnie satysfakcjonujących odpowiedzi.
Jaki jest dokładnie twój problem z plikiem '__init __. Py'? – eazar001
Dodajesz folder 'student' do swojej ścieżki, a następnie importujesz' run_this'. Oto, co inne odpowiedzi każą ci zrobić, czego próbowałeś, ale nie zadziałało? –
Nie chodzi o to, że nie działał tak bardzo, jak nie wydawał się elegancki. Lub przynajmniej dodanie \ __ init __. Py's wydaje mi się dość nieprzydatne - wydaje się niemoralne modyfikowanie struktury plików w celu uzyskania dostępu do podfolderów. Zmieniłem ścieżkę, przeczytałem, że była to zła praktyka, ale wydaje się rozsądnym rozwiązaniem. – vmkrish