I can't load a python module in IPython that works fine in the normal interpreter. I have analyzed the problem and somehow IPython does not find a module, whereas the standard console does:
This works in the normal interpreter:
>>> import sys
>>> sys.path.append(r'c:\development\...\ns.package-10.1.0.3-py2.7.egg')
>>> from ns import package
>>>
But on IPython it does not:
In [2]: import sys
In [3]: sys.path.append(r'c:\development\...\ns.package-10.1.0.3-py2.7.egg')
In [4]: from ns import package
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-4-c019e2988e33> in <module>()
----> 1 from ns import package
ImportError: cannot import name package
I find this pretty confusing. I am new to IPython and I don't know where to start. Thanks in advance.
IPython (short for Interactive Python) was started in 2001 by Fernando Perez as an enhanced Python interpreter, and has since grown into a project aiming to provide, in Perez's words, "Tools for the entire life cycle of research computing." If Python is the engine of our data science task, you might think of IPython as ...
Finally, if you are getting this the ModuleNotFoundError in a Jupyter notebook, then you need to ensure that both Jupyter and scikit-learn are installed within the same environment. As mentioned already, it is much better (and will definitely save you time and energy) if you work in isolated environments.
Create a folder called startup if it's not already there. Add a new Python file called start.py. Put your favorite imports in this file. Launch IPython or a Jupyter Notebook and your favorite libraries will be automatically loaded every time!
The key thing you have to recall here is that usually there's not just one python
interpreter on your machine. Many systems nowadays come with both python2.7
and python3.x
, maybe there are more. Every interpreter maintains its own set of installed packages and has its own set of installed scripts, such as ipython
or pip
.
When you type pip
in your shell it's often not obvious which pip
you are actually calling. Is it python3
's or python2
's pip?
And here is where you can get into trouble:
The ipython
und python
executables in your PATH do not necessary belong to the same interpreter: Imagine that python
and pip
belong to a python2
installation but you then decide to install ipython
into your python3
interpreter.
Now ipython
sees the the packages of your python3
interpreter whereas python
sees all your python2
packages.
If you compare the output of which ipython
and which python
in this case, you will notice that you get paths that belong to different interpreters.
So how can you call the script for your favorite interpreter? If python
points to your favorite interpreter some packages give you a nice way of calling via -m
parameter: Instead of pip install ipython
you can write python -m pip install ipython
and be sure that you called the pip
version of your favorite python interpreter.
Similar you can start ipython notebook
via python -m IPython notebook
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With