Question

Im trying to import a company module into my software and I get the error:

ImportError: No module named config

from:

from pylons.config import config

So obviously, the module that im importing requires pylons.config but cant find it in my virtual environment.

If I go to the terminal and try some Python scripts I can seem to find the config file if I try:

from pylons import config

but will error if I try:

import pylons.config

Why is this?

And does anybody how or where I can get:

 from pylons.config import config

to work. Bearing in mind that I cannot change the code for this module, only mine which is importing it or my own system files.


UPDATE

If anyone finding this page has a similar problem you may find that you are trying to run two modules with different versions of Pylons.

For example, you are creating a login application called myApp. You have some Python modules which help with login handling called pyLogin.

First you install pyLogin with python setup.py install. This adds the libraries to your site packages and updates any libraries it depends on, such as SqlAlchemy.

Next you install myApp in the same way which again updates libraries and dependencies.

This problem will occur if pyLogin and myApp are using different versions of Pylons. If pyLogin is using Pylons 0.9.6 and myApp is using Pylons 1.0 for example, then the pyLogin code will be called from myApp but it will be running in the wrong Pylons framework and hence will require EITHER from pylons import config or from pylons.config import config, but will only work with one. If it is using the wrong call for Pylons then you will find yourself with this error message.

So the only solution to this error is to either find earlier or later libraries which use the same Pylons version as your application or to convert your application to the same Pylons version as the libraries you are using.

Was it helpful?

Solution

There is a diffrence between two usages...

import loads a Python module into its own namespace, while from loads a Python module into the current namespace.

So, using from pylons import config imports config to to your current namespace. But trying to import a class or function using import is not possible since there is no namespace to keep them... You can only import modules, and use functions or classes via calling them with their own namespace like

import pylons
....
pylons.config #to retreive config

More about import in Python

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top