How to import python file located in same subdirectory in a pycharm project

前端 未结 8 1580
盖世英雄少女心
盖世英雄少女心 2020-12-13 08:48

I have an input error in pycharm when debugging and running.

My project structure is rooted properly, etc./HW3/. so that HW3 is the root di

相关标签:
8条回答
  • 2020-12-13 08:58

    Recommended Way:

    Make sure to set the working folder as Sources.

    You can do it in Pycharm -> Preferences -> Project: XYZ -> Project Structure

    Select your working folder and mark it as Sources. Then Pycharm recognize the working folder as a Source folder for the project and you will be able to simply add other files within that folder by using

    import filename.py
    

    or

    from filename.py import mudule1
    

    =================

    Not recommended way:

    In Pycharmyou can simply add . before the .py file which you are going to import it from the same folder. In your case it will be

    from .util import my_functions
    
    0 讨论(0)
  • 2020-12-13 09:01

    I had the same issue with pycharm, but the actual mistake was that the file I was trying to import didn't have a .py extension, even though I was able to run it as a standalone script. Look in the explorer window and make sure it has a .py extension. If not, right click on the file in the explorer window, pick refactor, and then rename it with a .py extension.

    0 讨论(0)
  • 2020-12-13 09:02

    Right-click on the folder which you want to be marked as the source > Mark Directory as > Source root.

    0 讨论(0)
  • 2020-12-13 09:03

    In my case, it worked only when I omit the extension. Example:

    import filename
    
    0 讨论(0)
  • 2020-12-13 09:06

    If you don't have an __init__.py create one and add this line

    from util.util import my_function
    

    then you can easily import the module in your scripts the __init__.py tells python that it should treat that folder as a python package, it can also be used to import/load modules too.

    in most cases the __init__.py is empty.

    Quoting the docs:

    The __init__.py files are required to make Python treat the directories as containing packages; this is done to prevent directories with a common name, such as string, from unintentionally hiding valid modules that occur later on the module search path. In the simplest case, __init__.py can just be an empty file, but it can also execute initialization code for the package or set the __all__ variable, described later.

    0 讨论(0)
  • 2020-12-13 09:11

    For me the issue was, the source directory was marked correctly, but my file to import was named starting with numeric value. Resolved by renaming it.

    import 01_MyModuleToImport
    

    to

    import MyModuleToImport
    
    0 讨论(0)
提交回复
热议问题