On Friday, December 19, 2014 6:00:15 PM UTC-8, Mitko Haralanov wrote:
> Hi all,
> 
> 
> I have a question regarding installation of Python scripts and modules using 
> distutils that I can't find an answer to by searching through Google and the 
> Python website. Hopefully, someone on this list might have ideas?
> 
> 
> I am writing a Python app, which I would eventually like to install using 
> disutils. The app has the current tree strucutre:
> 
> 
> <root>
>   |----- myapp.py
>   |----- modules/
>                |------  lib/
>                          |------  __init__.py
>                          |------  mymodule1.py
>                          |------  mymdule2.py
>                |------- cmds/
>                          |------  __init__.py
>                          |------  cmds1.py
> 
> 
> Naturally, in order for my app to properly import the modules, currently it 
> uses the following code:
> 
> 
>     import modules.lib.mymodule1
>     import modules.lib.mymodule2
>     import modules.cmds.cmds1
> 
> 
> However, when the app gets installed, I would like to install the modules to 
> /usr/lib64/pythonX.Y/site-packages/myapp. I know that I can do this by using 
> the "package_dir" argument to the "setup()" function in distutils.core.
> 
> 
> To make development easier I would like to be able to run the myapp.py script 
> from the development directory, which means that the import statements have 
> to remain as they are. The issue is that when the script is installed, the 
> import statements will not work anymore since the directory name has been 
> changed from "modules" to "myapp".
> 
> 
> My problem is that I can't figure out how to modify the myapp.py script to 
> switch from "modules.lib.mymodule1" to "myapp.lib.module1" at install time. 
> Does anyone have any useful hints?
> 
> 
> Thank you,
> - Mitko

Don't call that subdirectory "modules".  Call it "myappmodules" or something 
like that.  The modules would then be installed in 
/usr/lib64/pythonX.y/site-packages/myappmodules

I'm sure there's a work-around that would let you refer to them by different 
names based on whether or not the script is being run from your development 
directory, but it would probably be a Bad Idea and could easily break on some 
peoples' systems.

Alternatively, you could decide if you really need those modules to be 
installed as stand-alone modules in the site-packages directory.  Are users 
going to be importing those modules into their own scripts?
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to