Importing Your Own Python Modules Properly

แชร์
ฝัง
  • เผยแพร่เมื่อ 5 ก.ค. 2022
  • Today we learn how to properly import your own Python modules and also what the __init__.py file is about.
    ◾◾◾◾◾◾◾◾◾◾◾◾◾◾◾◾◾
    📚 Programming Books & Merch 📚
    🐍 The Python Bible Book: www.neuralnine.com/books/
    💻 The Algorithm Bible Book: www.neuralnine.com/books/
    👕 Programming Merch: www.neuralnine.com/shop
    🌐 Social Media & Contact 🌐
    📱 Website: www.neuralnine.com/
    📷 Instagram: / neuralnine
    🐦 Twitter: / neuralnine
    🤵 LinkedIn: / neuralnine
    📁 GitHub: github.com/NeuralNine
    🎙 Discord: / discord
    🎵 Outro Music From: www.bensound.com/
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 128

  • @robbiefryers13
    @robbiefryers13 ปีที่แล้ว +146

    You're confusing the term module with what is actually a package in python. Any file with a py extension is a 'module' in python. A collection of py files in a directory along with an __init__ file is a package, not a module

    • @PavitraGolchha
      @PavitraGolchha 8 หลายเดือนก่อน +7

      It's actually python which made this confusing. JS ESM is so simple

    • @raenastra
      @raenastra 7 หลายเดือนก่อน +3

      @@PavitraGolchha JS imports may not be the best example of simplicity, due to the competing standards, but I get what you mean

    • @BooklyCrashCourse
      @BooklyCrashCourse 2 หลายเดือนก่อน

      It is kind of confusing. Also a package can be comprised of packages.

  • @bloodywolftr
    @bloodywolftr ปีที่แล้ว +18

    I was looking for init usage and most of the tutorials in the wild were showing importing files just from next to the main python file.Now this is useful.Thanks.

  • @MrCipek1221
    @MrCipek1221 ปีที่แล้ว +13

    Thank you! :) I always learn something new with your videos :D Please keep it up!! Very well done :)

  • @kaushiksinghrawat
    @kaushiksinghrawat 8 หลายเดือนก่อน +3

    Was stuck on this for almost two days with most solutions on stack overflow and chatgpt suggesting to use absolute paths, instead of this type of relative pathing to import stuff.
    Finally managed to understand it 😆

  • @somecallmetimelderberries432
    @somecallmetimelderberries432 ปีที่แล้ว +8

    Nice explanation, best one yet I've seen on modules!

  • @jameswilliams-nw3lq
    @jameswilliams-nw3lq 7 หลายเดือนก่อน +1

    Thank you SO much. This was a difficult concept for me to grasp but so helpful. Your awesome

  • @saurabh7489
    @saurabh7489 ปีที่แล้ว +2

    Thank You Sir. You went into great length to explain this concept.

  • @sirsquirrel0
    @sirsquirrel0 ปีที่แล้ว +5

    Thanks for the video and making the effort. I found it quite difficult to see which files you were editing with the editor. I have rewatched a few times, but its blowing my mind.

    • @DokterTonga
      @DokterTonga ปีที่แล้ว +2

      I had the same. The file he is editing is named below (bottom)

  • @ninavanleeuwen1183
    @ninavanleeuwen1183 2 หลายเดือนก่อน

    THIS!! This is exactly what i have been looking for! Thank you so much

  • @patrikpatrik8421
    @patrikpatrik8421 ปีที่แล้ว +2

    Quick and simple explanation thank you !

  • @donjackson3520
    @donjackson3520 7 หลายเดือนก่อน +1

    Excellent video! I’m new to python and this is a big help

  • @ve3dy
    @ve3dy ปีที่แล้ว +1

    Thank you so much for this, very clear explanation.

  • @swifttech7853
    @swifttech7853 ปีที่แล้ว +1

    BROTHER, YOU ARE THE BEST!!! You oooh really helped me!! THANK YOU VERY MUCH!

  • @bla7091
    @bla7091 10 หลายเดือนก่อน +1

    Good stuff! I did notice that if I package everything into a wheel, without adding the classes to the __init__.py I was getting ModuleNotFound errors whenever I used submodules from the package.

  • @aceldama
    @aceldama ปีที่แล้ว +23

    nice. only thing i'd add is that you can import from a parent directory using .., so it would read "from ..parent_directory import y"

    • @authentic_101
      @authentic_101 หลายเดือนก่อน

      But this hasn't worked for me so far. Getting an error citing something about "unspecified parent package"

    • @aceldama
      @aceldama หลายเดือนก่อน

      @authentic_101 there are a few rules you need to stick to. Every directory you import from must have an __init__.py file, for example.

    • @authentic_101
      @authentic_101 หลายเดือนก่อน

      @@aceldama this I tried actually

  • @Person-hb3dv
    @Person-hb3dv 10 หลายเดือนก่อน

    you saved me a lot of time with this video. thank you. earned my sub

  • @salarghaffarian4914
    @salarghaffarian4914 10 หลายเดือนก่อน

    Really informative video. Thanks for recording and sharing it.

  • @rizaldicakra826
    @rizaldicakra826 9 หลายเดือนก่อน

    It works.
    Thank you, really help my project :)

  • @vinayakpandey6299
    @vinayakpandey6299 ปีที่แล้ว

    very nice explanation. understood everything very clearly

  • @paulohsgoes1959
    @paulohsgoes1959 ปีที่แล้ว

    Excelent job!
    Congrats

  • @sahilgarg94
    @sahilgarg94 ปีที่แล้ว +1

    Thank you very much sir .... This was badly needed...

  • @eton9931
    @eton9931 ปีที่แล้ว

    Wow, that was actually pretty easy
    Thanks you sir

  • @stormbytes
    @stormbytes ปีที่แล้ว +17

    Really cool video and explained very clearly. What about making a video on packaging modules for sharing?

  • @bobjohnson3427
    @bobjohnson3427 หลายเดือนก่อน

    Thanks, that clears up several of my problems that other resiurces weren't helping me resolve. I also have a couple of self-made modules that I use in multiple projects. Do you have any tips for how to access them using the environmentsl vafuable PATH or PYTHONPATH?

  • @anurasenarathna1703
    @anurasenarathna1703 11 หลายเดือนก่อน

    Very informative. Thank you very much.

  • @tanto_id
    @tanto_id ปีที่แล้ว

    Thank you, you explained very clearly

  • @JamesThiering
    @JamesThiering ปีที่แล้ว

    Thanks for the helpful video!

  • @philipp4980
    @philipp4980 ปีที่แล้ว +3

    Is that also possible to import the modules without the "from..."?
    E.g. with "import functionality" and call the functions with "functionality.add()".
    In comparison when I import the "math" module I use that method and can call "math.pi" afterwards.

  • @scottielin1076
    @scottielin1076 11 หลายเดือนก่อน

    Very clear explanation Thanks 🎉

  • @H4KnSL4K
    @H4KnSL4K 5 หลายเดือนก่อน

    Thanks for the video. I recommend some daily careful typing practice, btw - so you don't need to constantly correct your typing

  • @krystiansawicki4985
    @krystiansawicki4985 3 หลายเดือนก่อน

    Thank you this helped me a lot

  • @dragnar4743
    @dragnar4743 2 หลายเดือนก่อน

    Dude, the practical explanation was very good. In fact, on of the best on yt. But, I think you should have termed the directory containing all those modules as Package. Because, most of the beginners get little confused with term module, package and library. otherwise.... 👍👍

  • @redlight8752
    @redlight8752 2 หลายเดือนก่อน

    Thanks bro, much love

  • @tejasnirantar
    @tejasnirantar 9 หลายเดือนก่อน

    thx for this, really helpful

  • @tehreemakhtar8652
    @tehreemakhtar8652 ปีที่แล้ว

    Impressive. To the point content

  • @BeeryDorin
    @BeeryDorin ปีที่แล้ว

    thanks a lot, solved many problems.

  • @kcvinu
    @kcvinu ปีที่แล้ว

    Learned a new thing. "__all__". Thanks a lot.

  • @earthchan568
    @earthchan568 10 หลายเดือนก่อน

    thank man u saved my so much time

  • @hovh03
    @hovh03 5 หลายเดือนก่อน

    thanks you for very clear explanation. What about a source module downloaded from github and build by me? It is in a different location, not sub directory.

  • @iloloey
    @iloloey 3 หลายเดือนก่อน

    Fantastic explanation.

  • @DJaycerOfficial
    @DJaycerOfficial ปีที่แล้ว +1

    Making a text based rpg, and really needed a way for stats of enemies to be imported properly. I try not to use videos unless I’m A. Learning something or B. Completely lost and have no idea of the full concept of something.

  • @tsvasekar
    @tsvasekar ปีที่แล้ว +1

    Needed exactly this. Trying to add a pre built library to a system where I can't use pip, or setupmodule. I hope this will work.

  • @petereziagor4604
    @petereziagor4604 ปีที่แล้ว

    Nice video, I have to learn to use vim like you

  • @katlegophele8909
    @katlegophele8909 ปีที่แล้ว +2

    Tutorial on how to setup the environment like yours please

  • @sweetshoez
    @sweetshoez ปีที่แล้ว

    To the point, thanks!

  • @ShadyNetworker
    @ShadyNetworker ปีที่แล้ว

    Yooo, what is this terminal program and setup, it looks sexy. Thanks for the video!

  • @soklagenhet
    @soklagenhet 8 หลายเดือนก่อน +2

    Great, but you really tend not to use the star * import, it's generally bad practice as it bloats your namespace with potentially unwanted modules

  • @amiralizadeh6621
    @amiralizadeh6621 ปีที่แล้ว +2

    what if our module is in another directory? should we amend the system path?

  • @404errorpagenotfound.6
    @404errorpagenotfound.6 ปีที่แล้ว +2

    Please do a video on different IDE's, pros, cons etc.
    Thanks for your great comment.

    • @Lefthandup
      @Lefthandup ปีที่แล้ว

      I can recommend pycharm for python and blueJay for Java

    • @404errorpagenotfound.6
      @404errorpagenotfound.6 ปีที่แล้ว +1

      @@Lefthandup but more people especially on YT are using VS Code.

    • @stwni
      @stwni ปีที่แล้ว

      @@404errorpagenotfound.6 Vscode isn't really an IDE it's a text editor

    • @404errorpagenotfound.6
      @404errorpagenotfound.6 ปีที่แล้ว +1

      @@stwni what does an IDE do that VS doesn't? It's incredibly popular with YT programmers teaching coding.

    • @Lefthandup
      @Lefthandup ปีที่แล้ว +1

      @@404errorpagenotfound.6 I’m pretty sure an ide has the advantage of using other peoples libraries etc.

  • @MrJet84
    @MrJet84 6 หลายเดือนก่อน

    Thank you for lesson. But how import from upper module to lower?

  • @leonidgrishenkov4183
    @leonidgrishenkov4183 ปีที่แล้ว

    Thanks a lot!

  • @Dinco422
    @Dinco422 ปีที่แล้ว

    As a noob, I've watched this and still have no idea how to add modules, thanks.

  • @AhmedThahir2002
    @AhmedThahir2002 ปีที่แล้ว

    According to pyinstaller's official documentation
    "
    It is not a cross-compiler
    - to make a Windows app you run PyInstaller on Windows
    - to make a Linux app you run it on Linux, etc
    "
    Any workaround this?

  • @ghyslainhubert139
    @ghyslainhubert139 8 หลายเดือนก่อน

    I'm using VS Code. I followed pretty well until I got to __all__ = ["second", "third"]. second and third are grizzled underscored with a message ""second" is specified in __all__ but is not present in module Pylance".I'm still searching for a way to make it work. Note : from othermodule import *, second.myfunction() works and I get an Hello anyway but I still don't know why it works if I get errors in my code. Just to add. When I added the from .second import myfunction, from .third import another_function in the init file, under __all__ line, those errors are gone. Thanks for the video, it helps a lot.

  • @user-xc7ow8rf9w
    @user-xc7ow8rf9w ปีที่แล้ว

    Thanks bro!

  • @hecker5563
    @hecker5563 4 หลายเดือนก่อน

    Nice tutor!

  • @GuillermoGarcia75
    @GuillermoGarcia75 หลายเดือนก่อน

    GOING Awesome!! Still great!!

  • @jakobmatt8632
    @jakobmatt8632 8 หลายเดือนก่อน

    Im having trouble with this using gRPC I'm importing with from gRPC.python import * I have an __init__.py in the python directory do I somehow also need one in the gRPC directory which is the parent?.

  • @timshort9787
    @timshort9787 ปีที่แล้ว

    Please make a tutorial on how you set up your neovim environment

    • @NeuralNine
      @NeuralNine  ปีที่แล้ว +1

      I have two already

  • @canozer1954
    @canozer1954 ปีที่แล้ว

    When i try to run my code which is 2 python file inside a folder with all import rules, i am facing __pycache__ and code does not running. I cannot get input some print ext. How can i fix this.

  • @phenixtutorials3085
    @phenixtutorials3085 7 หลายเดือนก่อน

    Thx so much

  • @Lefthandup
    @Lefthandup ปีที่แล้ว +1

    Is there a library I can import that will allow me to read in user input without them having to press enter? Like for a WPM tester for example to see if they had a typo

    • @mables8698
      @mables8698 ปีที่แล้ว +1

      Yes, but which one depends on your project.
      For a typing tester in the console you can check out this video from Tech with Tim:
      th-cam.com/video/NQ5i1kJAA6Y/w-d-xo.html
      Also, you could create something with pygame, which checks continually for input.

    • @Lefthandup
      @Lefthandup ปีที่แล้ว

      @@mables8698 wow this is exactly what I was trying to do thx

  • @stevenhoang7297
    @stevenhoang7297 6 หลายเดือนก่อน +1

    what's your vim setup 👉👈

  • @szenghoe
    @szenghoe ปีที่แล้ว

    why we dont have to declare submodule in the init file?

  • @supermankelly
    @supermankelly หลายเดือนก่อน

    What if the module file is not under the project folder. How do you define a totally different path?

  • @stephen285
    @stephen285 ปีที่แล้ว

    fyi ~ this did not work for me, yes I had my functions file in the same directory as my blend file, but still I had to add the explicit path as follows, then it worked as shown in video
    import bpy
    import system
    sys.path.append('E:\content\working\latest')
    from func import testfunc

  • @akshatsharmasre
    @akshatsharmasre ปีที่แล้ว

    Does this work if the folders are in git repo?

  • @Tom-JS
    @Tom-JS 11 หลายเดือนก่อน

    When the teacher says add every number from to 100 instead of doing this 1 +2+3
    Of a text editor and type this
    total = 0
    for num in range(101):
    total = num + total
    print(total)
    It will print the correct answer 5050

  • @subi_rocks
    @subi_rocks ปีที่แล้ว +3

    What if I want to import fourth.py inside second.py and then call second.py from main.py?

    • @CattleRustlerOCN
      @CattleRustlerOCN 3 หลายเดือนก่อน

      In second.py Import Fourth, in main Import Second
      maybe 😊

  • @Cordic45
    @Cordic45 ปีที่แล้ว +1

    what does . mean at 8:31?

  • @austinmoody4719
    @austinmoody4719 10 หลายเดือนก่อน

    any idea why my vs code isnt importing files from the same directory?

  • @tki967
    @tki967 ปีที่แล้ว

    can you please put module and code(main) at different folder and access module from code

  • @nishantgarg3688
    @nishantgarg3688 ปีที่แล้ว +2

    thanks bhai

  • @ponambihasivan4588
    @ponambihasivan4588 ปีที่แล้ว

    amazing!!

  • @user-pi2rw9bq6g
    @user-pi2rw9bq6g 10 หลายเดือนก่อน

    Thanks

  • @amit12000
    @amit12000 ปีที่แล้ว

    how use linting in neovim using pylint and how to avoid import error

  • @purpplleyt
    @purpplleyt ปีที่แล้ว

    Love you bro

  • @user-cn5uh9he4f
    @user-cn5uh9he4f 11 หลายเดือนก่อน

    very useful

  • @yashasvimantha6012
    @yashasvimantha6012 ปีที่แล้ว

    You didn't talk about having the module not in the same directory and using it.

  • @arcanelore168
    @arcanelore168 4 หลายเดือนก่อน

    I use neovim on KDE Plasma!

  • @lennuard_6998
    @lennuard_6998 ปีที่แล้ว

    could you do a video about a tcp chat room in c? would love to see that
    love ur videos

  • @Cordic45
    @Cordic45 ปีที่แล้ว

    what is this test editor name?

  • @ahmadov01
    @ahmadov01 ปีที่แล้ว

    What is this ide name ? Is it vim ? May you send config ?

  • @ranknwarjitsinghdhaliwal9856
    @ranknwarjitsinghdhaliwal9856 11 หลายเดือนก่อน

    what ui is this??? sorry, new to this

  • @dragonwarrior7442
    @dragonwarrior7442 ปีที่แล้ว

    I love your video

  • @matteodelgrosso4364
    @matteodelgrosso4364 7 หลายเดือนก่อน +2

    The terms module and package are mixed up! A module is a python file. A package is a collection of python modules!

  • @MagnusAnand
    @MagnusAnand ปีที่แล้ว +1

    But why use * in the first place? It's supposed to be an antipattern because of namespacing issues.

  • @xiupingli2892
    @xiupingli2892 22 วันที่ผ่านมา

    I tried to import my own module that uses pandas or yahoo finance. but it did not work. How can i solve it

  • @danielpartyhead2234
    @danielpartyhead2234 6 หลายเดือนก่อน

    all good. but it dont see import pandas as pd in function :(

  • @manfrombritain6816
    @manfrombritain6816 ปีที่แล้ว

    most of the time i love python but there's something about the way we do this stuff that really does not compute in my head. the file structure of flask apps in general just doesn't work in my head... i find JS frameworks much more simpler to grasp for god's sake

  • @odysseaskorelides7897
    @odysseaskorelides7897 ปีที่แล้ว

    I LOVE YOU

  • @portal_it_id
    @portal_it_id 2 หลายเดือนก่อน

    Well explained!

  • @mathsfun4097
    @mathsfun4097 4 วันที่ผ่านมา

    I was import error like they can't be imported from my module

  • @zakaryreilly
    @zakaryreilly 4 หลายเดือนก่อน

    Not clear on package/module/sub-module terminology. A bit confusing.

  • @Anonymous-ri4mk
    @Anonymous-ri4mk ปีที่แล้ว

    I am not gonna lie sometimes I get lose in the middle of my code and get confused

  • @abba6104
    @abba6104 8 หลายเดือนก่อน

    Honestly it was a bit hard to follow due to the strange IDE or whatever. Pretty good tutorial I suppose but presentation was a bit unclear.

  • @kevintanudjaja7597
    @kevintanudjaja7597 2 หลายเดือนก่อน

    ah.. why not cover sibling module..

  • @heathergray4880
    @heathergray4880 ปีที่แล้ว

    I have always been told that start imports are bad

  • @philtoa334
    @philtoa334 ปีที่แล้ว

    Thx_.

  • @joaojarczewski
    @joaojarczewski 6 หลายเดือนก่อน

    TOP