By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
424,846 Members | 1,631 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 424,846 IT Pros & Developers. It's quick & easy.

importing a package

P: n/a
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
Share this Question
Share on Google+
4 Replies


P: n/a
> 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

P: n/a
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

P: n/a
> 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

P: n/a
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.