Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8971827
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 15, 20262026-06-15T18:03:35+00:00 2026-06-15T18:03:35+00:00

I have the following directory structure: my_program/ foo.py __init__.py # empty conf/ config.cfg __init__.py

  • 0

I have the following directory structure:

my_program/
       foo.py
       __init__.py # empty
       conf/
          config.cfg
          __init__.py 

In foo.py I have this:

import sys 
#sys.path.append('conf/')
import ConfigParser

config = ConfigParser.ConfigParser()
config.read( 'conf/config.cfg' )

In conf/__init__.py I have

__all__ = ["config.cfg"]

I get this error in foo.py that I can fix by giving the full path but not when I just put conf/config.cfg but I want the relative path to work:

ConfigParser.NoSectionError

which actually means that the file can’t be loaded (so it can’t read the section).

I’ve tried commenting/un-commenting sys.path.append('conf/') in foo.py but it doesn’t do anything.

Any ideas?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-15T18:03:37+00:00Added an answer on June 15, 2026 at 6:03 pm

    Paths are relative to the current working directory, which is usually the directory from which you run your program (but the current directory can be changed by your program [or a module] and it is in general not the directory of your program file).

    A solution consists in automatically calculating the path to your file, through the __file__ variable that the Python interpreter creates for you in foo.py:

    import os
    config.read(os.path.join(os.path.dirname(__file__), 'conf', 'config.cfg'))
    

    Explanation: The __file__ variable of each program (module) contains its path (possibly relative to the current directory when it was loaded, I guess—I could not find anything conclusive in the Python documentation—, which happens for instance when foo.py is imported from its own directory).

    This way, the import works correctly whatever the current working directory, and wherever you put your package.

    PS: side note: __all__ = ["config.cfg"] is not what you want: it tells Python what symbols (variables, functions) to import when you do from conf import *. It should be deleted.

    PPS: if the code changes the current working directory between the time the configuration-reading module is loaded and the time you read the configuration file, then you want to first store the absolute path of your configuration file (with os.path.abspath()) before changing the current directory, so that the configuration is found even after the current directory change.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have the following directory structure: Main.py A/ __init__.py B/ __init__.py C/ __init__.py The
I have the following directory structure: project/ .git/ ... app/ ... config/ initializers/ braintree.rb
I have the following directory structure: The directory name is test_app |-- __init__.py |--
Suppose I have the following directory structure: workspace/ __init__.py ys_manage/ __init__.py manage.py ys_utils/ __init__.py
I have the following directory structure in htdocs: htdocs/ .htaccess index.php foo/ bar/ priv/
I have this following directory structure: auth controllers daos etc.. I have this DAO
I have the following directory structure: schema1 schema1.xsd schema1.xsdconfig schema2 schema2.xsd schema2.xsdconfig schema3 schema3.xsd
I have the following directory structure of a project: Folder project in Eclipse: --folder
I have the following directory structure: +-archive +-a +-data.txt +-b +-data.txt +-incoming +-a +-data.txt
I have the following directory structure: vardir1 vardir2 vardir3 vardir4 constantdir1 Inside constantdir1, i

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.