How to import a module but ignoring the package's __init__.py?

I'm trying to import a function which is in a module inside a package in Python, but when I try:

from package.module import some_function

Python executes the package's __init__.py but it can't happen.

Is there a way to import the function telling Python to ignore the package's __init__.py?

Upvotes: 13

Views: 9433

Answers (1)

kaspersky
kaspersky

Reputation: 4117

The answer is No, you can't import a python package without the __init__.py being executed. By definition, to make a package, you must put in that directory a __init__.py.

But, you can make an empty __init__.py file.

If you want just to import a function from a module, you can use:

import sys
sys.path.append('path_to_package/')

from module import some_function

Note that this is a dirty solution, and won't always work.

Upvotes: 8

Related Questions