willyach07 at gmail.com
Tue Nov 11 21:06:07 CET 2014
On Sunday, November 9, 2014 11:51:41 PM UTC-5, Steve Hayes wrote:
> I have a book on Python that advocates dividing programs into modules, and
> importing them when needed.
> I have a question about this.
> I can understand doing that in a compiled language, where different modules
> can be imported from all sorts of places when the program is compiled.
> But I understand that Python is an interpreted language, and If I wrote a
> program in Python like that, and wanted to run it on another computer, how
> would it find all the modules to import at run-time, unless I copied the whole
> directory structure over to the other computer?
> Steve Hayes from Tshwane, South Africa
> Web: http://www.khanya.org.za/stevesig.htm
> Blog: http://khanya.wordpress.com
> E-mail - see web page, or parse: shayes at dunelm full stop org full stop uk
I have had a lot of trouble with executing relative imports with some of my projects in python.
Are there any best practices or methods besides '../../' type hard-coding?
In one project, a spider using scrapy, I used this method to import a module from 'the other side' of a file directory.
spider_lib_path = os.path.realpath(os.path.dirname(__file__) + '/../../../../../library/python')
object_builder_printer = imp.load_source('object_builder_printer', spider_lib_path + '/object_builder_printer.py')
object_builder = object_builder_printer.object_builder_printer(settings)
the file structure was:
-------pipelines.py (the file that needs to import object_builder_printer.py)
I think the issue had something to do with there being duplicitous file names, as in, there are multiple directories named 'spiders'.
More information about the Python-list