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