Module import via sys.path and py2exe

flupke flupke at nonexistingdomain.com
Thu Sep 22 18:03:42 EDT 2005


flupke wrote:
> Hi,
> 
> i have a program with is built like this:
> startup.py
> dir1/__init__.py
> dir1/file1.py
> dir2/__init__.py
> dir2/file2.py
> dir3/__init__.py
> dir3/file3.py
> 
> The program works but now i want to add the functionality into an 
> existing program 2. This is program 2:
> 
> program2.py
> program2dir1/__init__.py
> program2dir1/file4.py
> 
> When i copy the directories over i get this situation:
> 
> program2.py
> program2dir1/__init__.py
> program2dir1/file4.py
> program1/__init__.py
> program1/dir1/__init__.py
> program1/dir1/file1.py
> program1/dir2/__init__.py
> program1/dir2/file2.py
> program1/dir3/__init__.py
> program1/dir3/file3.py
> 
> However, i need to specify this in program2.py or i can't use the files 
> 1-3:
> import sys
> sys.path.append('program1')
> import program1.dir1.file1 as f1
> 
> Then i can use the functionality of the first program in the second.
> 
> Now for my questions:
> 
> 1. Is this the correct way or is there an easier/more logical sollution.
> Now all __init__.py file are empty
> 
> 2. As said this works but when i make a standalone of program2 it 
> doesn't find any of the program1 files:
> Traceback (most recent call last):
>   File "start.py", line 20, in ?
>   File "windows\windowmain.pyo", line 59, in ?
>   File "program1\__init__.pyo", line 2, in ?
>   File "program1\dir1\__init__.pyo", line 1, in ?
>   File "program1\dir1\file1.pyo", line 28, in ?
> ImportError: No module named dir2.file2
> 
> dir2.file2 is imported in file1.py as import dir2.file2.
> So something in my setup script is wrong. How can i make sure all file 
> of program1 are also added?
> 
> Excerpt of setup.py
> ...
> py_modules=['start'],
> packages=['database','dialogs','export','graphics','localutils','windows'],
> ...
> If i specify program1 as module or as package or program1.dir1 and so on 
> doesn't seem to help.
> 
> Any ideas?
> 
> Thanks
> Benedict

I forgot to add that if i check the shared.lib py2exe creates, the 
program1 dir and subdirs/files are there so they are included in the 
package.

Benedict



More information about the Python-list mailing list