470,618 Members | 1,723 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 470,618 developers. It's quick & easy.

importing a package

Hi,

I developed a package with a structure like this
src/
tesfile.py
dir1/
__init__.py
file1.py
dir2/
__init__.py
file2.py

The testfile is meant to try the code out that is specified in file1.py
and file2.py

Now i have another project where i want to use the code from that package.
The structure of that project:

src/
file3.py
dir3/
__init__.py
file4.py

To use it, i copied the package in the root of the project:
src/
file3.py
dir3/
__init__.py
file4.py
package/
__init__.py
dir1/
__init__.py
file1.py
dir2/
__init__.py
file2.py

In my code (file3.py) i then do an "import package.dir1.file1 as myobj"
and access a class like this:
myobj.LMyClass()

(where myobj and LMyClass are decent names. Used these as example)

That works but i get an error in the package files.
I then get an error in package/dir1/file1.py on an import statement
specified in that file1.py that says import dir2.file2

How come this works as standalone project and not when i try to use it
as in situation 2 it doesn't seem to find module file2.py ?
How can i solve that?

Thanks
Benedict
Jul 19 '05 #1
4 1444
> I developed a package with a structure like this
src/
tesfile.py
dir1/
__init__.py
file1.py
dir2/
__init__.py
file2.py


Importing dir2/file2 from dir1/file1.py works here, because when yuo started
the testfile script the src/ directory was added to the sys.path list.

If you relocate dir1/ and dir2/ in a "package" directory here it will not
work.
--
damjan
Jul 19 '05 #2
Damjan wrote:
I developed a package with a structure like this
src/
tesfile.py
dir1/
__init__.py
file1.py
dir2/
__init__.py
file2.py

Importing dir2/file2 from dir1/file1.py works here, because when yuo started
the testfile script the src/ directory was added to the sys.path list.

If you relocate dir1/ and dir2/ in a "package" directory here it will not
work.


Indeed, when i do this, then it works
import sys
sys.path.append('package')

However, why is it that package isn't added automatically to the pad?

Regards,
Benedict
Jul 19 '05 #3
> Indeed, when i do this, then it works
import sys
sys.path.append('package')

However, why is it that package isn't added automatically to the pad?


When you execute a python program the directory where the program is is
automatically added to sys.path. No other directory is added to the default
builtin sys.path.

In you case (the second case), you can import package.dir2.file2.
--
damjan
Jul 19 '05 #4
Damjan wrote:
Indeed, when i do this, then it works
import sys
sys.path.append('package')

However, why is it that package isn't added automatically to the pad?

When you execute a python program the directory where the program is is
automatically added to sys.path. No other directory is added to the default
builtin sys.path.

In you case (the second case), you can import package.dir2.file2.


OK, thanks for the info

Regards,
Benedict

--
Benedict Verheyen Debian User
http://www.heimdallit.be Public Key 0x712CBB8D
Jul 19 '05 #5

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

reply views Thread by Mark English | last post: by
4 posts views Thread by Little PussyCat | last post: by
3 posts views Thread by Charles Krug | last post: by
3 posts views Thread by Elmo Watson | last post: by
1 post views Thread by mypetslug | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.